1 | // filesystem/string_file.hpp --------------------------------------------------------// |
---|---|
2 | |
3 | // Copyright Beman Dawes 2015 |
4 | |
5 | // Distributed under the Boost Software License, Version 1.0. |
6 | // See http://www.boost.org/LICENSE_1_0.txt |
7 | |
8 | // Library home page: http://www.boost.org/libs/filesystem |
9 | |
10 | #ifndef BOOST_FILESYSTEM_STRING_FILE_HPP |
11 | #define BOOST_FILESYSTEM_STRING_FILE_HPP |
12 | |
13 | #include <string> |
14 | #include <boost/filesystem/fstream.hpp> |
15 | #include <boost/filesystem/operations.hpp> |
16 | |
17 | namespace boost |
18 | { |
19 | namespace filesystem |
20 | { |
21 | inline |
22 | void save_string_file(const path& p, const std::string& str) |
23 | { |
24 | ofstream file; |
25 | file.exceptions(std::ofstream::failbit | std::ofstream::badbit); |
26 | file.open(p, std::ios_base::binary); |
27 | file.write(str.c_str(), str.size()); |
28 | } |
29 | |
30 | inline |
31 | void load_string_file(const path& p, std::string& str) |
32 | { |
33 | ifstream file; |
34 | file.exceptions(std::ifstream::failbit | std::ifstream::badbit); |
35 | file.open(p, std::ios_base::binary); |
36 | std::size_t sz = static_cast<std::size_t>(file_size(p)); |
37 | str.resize(sz, '\0'); |
38 | file.read(&str[0], sz); |
39 | } |
40 | } // namespace filesystem |
41 | } // namespace boost |
42 | |
43 | #endif // include guard |
44 |