nn::nlib::FileOutputStream
を利用してテキストファイルを書くサンプルです。 ストリームを通して書いたファイルを読み込んでコンソールに表示します。
テキストはnn::nlib::TextWriter
オブジェクトを通して書くことで UTF-16からUTF-8に変換されて書き込まれます。BOMは書き込まれません。 また、改行文字はCRLF
に統一されます。
バイナリデータを直接書き込む場合はストリームオブジェクトを直接利用して書き込みます。
ファイル以外のストリームを利用して読み込む場合もそれぞれのストリームを利用すること以外は同様です。
#include <string>
const wchar_t text[] =
L"Running in the circle is the green Yamanote line\n"
L"円く走るのが緑の山手線\n";
NLIB_PATHMAPPER_FORSAMPLE
bool SampleMain(int, char**) {
InitPathMapperForSample();
char filename[1024];
g_PathMapper.ResolvePath(NULL, filename, "nlibpath:///readwrite/writefile.txt");
{
FileOutputStream stream;
if (0 != stream.Init()) return false;
if (0 != stream.Open(filename)) {
return false;
}
{
TextWriter writer;
writer.Init(&stream);
if (!writer.Write(text)) return false;
}
if (!stream.Close()) return false;
}
std::string str;
FileInputStream stream;
if (0 != stream.Init()) return false;
if (0 != stream.Open(filename)) {
return false;
}
int c;
while ((c = stream.Read()) > 0) {
str += static_cast<char>(c);
}
if (stream.GetErrorValue() != 0) {
return false;
}
return true;
}
NLIB_MAINFUNC