ホームページ  >  記事  >  バックエンド開発  >  C# ファイルの読み取り

C# ファイルの読み取り

王林
王林オリジナル
2024-09-03 15:05:22837ブラウズ

ファイル操作の実行はプログラマの生活に不可欠な部分であり、すべてのプログラミング言語は同じことを実現するためのさまざまなライブラリや関数を提供しています。 File クラス プロバイダーで利用可能なメソッドを使用して、C# でも同じことを実行できます。一般に、ファイルからの読み取りは、ReadAllText(file) と ReadAllLines(file) の 2 つのメソッドを使用して実行されます。ここで、ファイルは、読み取る必要があるファイルを示します。 Streamreader を使用してファイルをバイトとして読み取ることもできます。この記事では、C# でファイルを読み取るために使用できるさまざまなメソッドと、適切な例を詳しく説明します。

構文:

ReadAllText() の構文は次のとおりです

public static string ReadAllText (String Path, System.Text.Encoding encoding)

ReadAllLines() の構文は次のとおりです

public static string ReadAllLines(String, Encoding)

このメソッドは、ファイル内に存在するすべての行を読み取り、それらを文字列に格納してからファイルを閉じます。

C# 読み取りファイルのパラメータ

  • パス: パスにはファイルの場所が含まれます。このファイルは読み取る必要があります。
  • エンコーディング: これはファイルのエンコーディング タイプを示します。これはオプションです。

このメソッドの戻り値の型は、ファイル内のすべての内容を含む文字列です。このメソッドは System.IO 名前空間で使用でき、このメソッドに関連付けられているアセンブリは mscorlib.dll です。

ReadAllLines() メソッドの ReadAllText() に関連する例外:

  • 引数の例外: これは、パスに文字がゼロ、空白、または無効な文字が含まれている場合に発生します。
  • 引数 Null 例外:これはパスが null の場合に発生します。
  • パスが長すぎる例外: これは、パスが実際のシステム定義の制限を超えた場合に発生します。
  • IO 例外: エラーが発生した場合にファイルを開くと、この例外が発生します。
  • 不正アクセス例外: これは、指定されたファイルが読み取り専用である場合に発生します
  • ファイルが見つからない例外: これは、指定された場所にファイルが存在しない場合に発生します。
  • サポートされていない例外: 指定されたパスが無効な形式の場合、この例外がスローされます。
  • セキュリティ例外: ユーザーがファイルにアクセスできない場合、この例外がスローされます。

C# 読み取りファイルの例

以下に挙げる例を次に示します。

例#1 – ReadAllText() を使用したファイルの読み取り

コード:

using System;
using System.IO;
using System.Text;
namespace ReadAllText
{
class Test
{
static void Main(string[] args)
{
var Fpath= @"C:\Vignesh\KB.txt";
string content = File.ReadAllText(Fpath, Encoding.UTF8);
Console.WriteLine(content);
}
}
}

出力:

C# ファイルの読み取り

例 #2 – ReadAllLines() を使用したファイルの読み取り

コード:

using System;
using System.IO;
using System.Text;
namespace ReadAllLines
{
class Test
{
static void Main(string[] args)
{
var inputfile = @"C:\Vignesh\append.txt";
string[] output = File.ReadAllLines(inputfile, Encoding.UTF8);
foreach (string op in output)
{
Console.WriteLine(op);
}
}
}
}

出力:

C# ファイルの読み取り

例 #3 – streamreader クラスを使用したファイルの読み取り

1. StreamReader.ReadToEnd(): このメソッドは、現在の位置からストリームの最後までファイルを読み取るために使用されます。このメソッドに対応する名前空間は System.Io で、アセンブリは mscorblib.dll です。

構文:

public override string ReadToEnd ();

入力パラメータ: このメソッドには入力パラメータは必要ありません。

戻り値: このメソッドはファイルの内容をストリームとして出力します。現在の位置がファイルの最後の文字に設定されている場合は、空の文字列が返されます。

2. StreamReader.ReadLine(): このメソッドは、現在のストリームから文字を読み取り、データを文字列として出力に送信します。このメソッドに対応する名前空間は System.Io で、アセンブリは mscorblib.dll です。

構文:

public override string ReadLine();

入力パラメータ: このメソッドには入力パラメータは必要ありません。

戻り値: 現在のストリームの次の行を返します。現在のストリームが最後の行位置にある場合は、null が返されます。

コード:

using System;
using System.IO;
using System.Text;
class Program
{
static void Main(string[] args)
{
var FP = @"C:\Vignesh\Names.txt";
using var fstre = new FileStream(FP, FileMode.Open, FileAccess.Read);
using var sree = new StreamReader(fstre, Encoding.UTF8);
string Fcontent = sree.ReadToEnd();
Console.WriteLine(Fcontent);
}
}

出力:

C# ファイルの読み取り

コード:

using System;
using System.IO;
using System.Text;
class Program
{
static void Main(string[] args)
{
var filpath = @"C:\Vignesh\TimerJob-2019-08-09.txt";
using var fstre = new FileStream(filpath, FileMode.Open, FileAccess.Read);
using var sreee = new StreamReader(fstre, Encoding.UTF8);
string cline = String.Empty;
while ((cline = sreee.ReadLine()) != null)
{
Console.WriteLine(cline);
}
}
}

出力:

C# ファイルの読み取り

コード:

using System;
using System.IO;
namespace testclass {
class Test {
string FPath = @ "C:\Vignesh\Script to 0365 connection.txt";
static void Main(string[] args)
{
//Check if file is there at the path
//ReadallOutput()
if (File.Exists(FPath)) {
string output = File.ReadAlloutput(FPath);
Console.WriteLine(output);
}
//Check if file is there at the path
if (File.Exists(FPath)) {
//ReadallLines()
string[] Flines = File.ReadAllFlines(FPath);
foreach(string line in Flines)
Console.WriteLine(line);
}
//Check if file is there at the path
if (File.Exists(FPath)) {
//using streamreader
using(StreamReader file = new StreamReader(FPath)) {
int counter = 0;
string lgth;
while ((lgth = file.ReadLine()) != null) {
Console.WriteLine(lgth);
counter++;
}
file.Close();
}
}
Console.ReadKey();
}
}
}

出力:

C# ファイルの読み取り

例 #4 – streamreader を使用してファイルを非同期で読み取る

コード:

using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
class TestProgram
{
static async Task Main(string[] args)
{
var ip = @" C:\Vignesh\Patching\Patching Steps.txt";
using var fssss = new FileStream(ip, FileMode.Open, FileAccess.Read);
using var srrr = new StreamReader(fssss, Encoding.UTF8);
//Reading asynchronously
string op = await srrr.ReadToEndAsync();
Console.WriteLine(op);
}
}

出力:

C# ファイルの読み取り

結論

このように、この記事では C# のファイル読み取り機能について詳しく説明しました。操作を実行するために使用できるさまざまな方法について説明しました。各メソッドに関連するさまざまなパラメータや例外についても、サンプルプログラムの例とともに詳しく説明しました。さらに詳しく説明するには、サンプルプログラムを作成して実践することをお勧めします。

以上がC# ファイルの読み取りの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。