summaryrefslogtreecommitdiff
path: root/boost/filesystem/string_file.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/filesystem/string_file.hpp')
-rw-r--r--boost/filesystem/string_file.hpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/boost/filesystem/string_file.hpp b/boost/filesystem/string_file.hpp
new file mode 100644
index 0000000000..015f659080
--- /dev/null
+++ b/boost/filesystem/string_file.hpp
@@ -0,0 +1,43 @@
+// filesystem/string_file.hpp --------------------------------------------------------//
+
+// Copyright Beman Dawes 2015
+
+// Distributed under the Boost Software License, Version 1.0.
+// See http://www.boost.org/LICENSE_1_0.txt
+
+// Library home page: http://www.boost.org/libs/filesystem
+
+#ifndef BOOST_FILESYSTEM_STRING_FILE_HPP
+#define BOOST_FILESYSTEM_STRING_FILE_HPP
+
+#include <string>
+#include <boost/filesystem/fstream.hpp>
+#include <boost/filesystem/operations.hpp>
+
+namespace boost
+{
+namespace filesystem
+{
+inline
+void save_string_file(const path& p, const std::string& str)
+{
+ ofstream file;
+ file.exceptions(std::ofstream::failbit | std::ofstream::badbit);
+ file.open(p, std::ios_base::binary);
+ file.write(str.c_str(), str.size());
+}
+
+inline
+void load_string_file(const path& p, std::string& str)
+{
+ ifstream file;
+ file.exceptions(std::ifstream::failbit | std::ifstream::badbit);
+ file.open(p, std::ios_base::binary);
+ std::size_t sz = static_cast<std::size_t>(file_size(p));
+ str.resize(sz, '\0');
+ file.read(&str[0], sz);
+}
+} // namespace filesystem
+} // namespace boost
+
+#endif // include guard