Back to Top

プログラムの覚書

Category: C#

.NET C#

C# シーケンシャルファイル

C#にてシーケンシャル読み込み・書き込みの方法を説明します。

シーケンシャルファイルを読み書きするには、幾つかの方法がありますが、StreamReader ・ StreamWriter を使用する方法を記載します。

シーケンシャル読み込み

string inFilePath = @"C:\work\myfile.txt";

List<string> dtList = new List<string>();

try
{
    using (System.IO.StreamReader sr = new System.IO.StreamReader(inFilePath, System.Text.Encoding.GetEncoding("Shift_JIS")))
    {
        while (!sr.EndOfStream)
        {
            dtList.Add(sr.ReadLine());
        }
        sr.Close();     //usingの場合Closeは必ずしも必要ではない
    }
}
catch (Exception e)
{
}

 

シーケンシャル書き込み

string outFilePath = @"C:\work\myfile.txt";
   
List<string> dtList = new List<string>();

データの設定・・・

try
{
    using (System.IO.StreamWriter sw = new System.IO.StreamWriter(outFilePath, false, System.Text.Encoding.GetEncoding("Shift_JIS")))
    {
        foreach (string s in dtList)
        {
            sw.WriteLine(s);
        }
        sw.Close();         //usingの場合Closeは必ずしも必要ではない
    }
}
catch (Exception e)
{
}

 

C# テキストファイル読み込み・書き込み

C#にてテキストファイルの読み書きには、幾つかの方法があります。

以下にテキストファイルの読み込み・書き込み例を記載します。

テキストファイルを一括で文字列として読み込む

string inFilePath = @"C:\work\myfile.txt";
string str = System.IO.File.ReadAllText(inFilePath, System.Text.Encoding.Default);

 

文字列をテキストファイルに書き込む

string outFilePath = @"C:\work\myfile2.txt";
System.IO.File.WriteAllText(outFilePath, str, System.Text.Encoding.Default);

 

テキストファイルを改行で分割して文字列配列に読み込む

string inFilePath = @"C:\work\myfile.txt";
string[] lines = System.IO.File.ReadAllLines(inFilePath, System.Text.Encoding.Default);

 

文字列配列をテキストファイルに書き込む

string outFilePath = @"C:\work\myfile2.txt";
System.IO.File.WriteAllLines(outFilePath, lines, System.Text.Encoding.Default);

 

StreamReaderでテキストファイルを全て読み込む

string inFilePath = @"C:\work\myfile.txt";

System.IO.StreamReader sr = new System.IO.StreamReader(inFilePath, System.Text.Encoding.Default);
string str = sr.ReadToEnd();
sr.Close();

 

StreamReaderでテキストファイルを1行ずつ読み込む

string inFilePath = @"C:\work\myfile.txt";

System.IO.StreamReader sr = new System.IO.StreamReader(inFilePath, System.Text.Encoding.Default);
string str = "";
while (sr.Peek() >= 0)
{
    string s = sr.ReadLine();
    str = str + s + System.Environment.NewLine;
}
sr.Close();