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
17namespace boost
18{
19namespace filesystem
20{
21inline
22void 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
30inline
31void 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