// Copyright 2023 The Chromium Authors | |
// Use of this source code is governed by a BSD-style license that can be | |
// found in the LICENSE file. | |
#include "file_util.h" | |
#include <fstream> | |
#include <iostream> | |
#include <streambuf> | |
#include <string> | |
namespace bssl { | |
namespace fillins { | |
bool ReadFileToString(const FilePath &path, std::string *out) { | |
std::ifstream file(path.value(), std::ios::binary); | |
file.unsetf(std::ios::skipws); | |
file.seekg(0, std::ios::end); | |
if (file.tellg() <= 0) { | |
return false; | |
} | |
out->reserve(file.tellg()); | |
file.seekg(0, std::ios::beg); | |
out->assign(std::istreambuf_iterator<char>(file), | |
std::istreambuf_iterator<char>()); | |
return true; | |
} | |
} // namespace fillins | |
} // namespace bssl |