.Net Coreでファイルを読み書きするオプションは何ですか?
私は最初の.Net Coreアプリに取り組んでおり、File.Read*
/File.Write*
関数(System.IO
からの.Net
)の代替を探しています。
パッケージ: System.IO.FileSystem
System.IO.File.ReadAllText("MyTextFile.txt"); ?
FileStream fileStream = new FileStream("file.txt", FileMode.Open);
using (StreamReader reader = new StreamReader(fileStream))
{
string line = reader.ReadLine();
}
System.IO.FileStream および System.IO.StreamReader を使用します。 System.IO.BinaryReader または System.IO.BinaryWriter も使用できます。
書くには:
using (System.IO.StreamWriter file =
new System.IO.StreamWriter(System.IO.File.Create(filePath).Dispose()))
{
file.WriteLine("your text here");
}
つかいます:
File.ReadAllLines("My textfile.txt");
参照: https://msdn.Microsoft.com/pt-br/library/s2tte0y1(v = vs.110).aspx
public static void Copy(String SourceFile, String TargetFile)
{
FileStream fis = null;
FileStream fos = null;
try
{
Console.Write("## Try No. " + a + " : (Write from " + SourceFile + " to " + TargetFile + ")\n");
fis = new FileStream(SourceFile, FileMode.Open, FileAccess.ReadWrite);
fos = new FileStream(TargetFile, FileMode.Create, FileAccess.ReadWrite);
int intbuffer = 5242880;
byte[] b = new byte[intbuffer];
int i;
while ((i = fis.Read(b, 0, intbuffer)) > 0)
{
fos.Write(b, 0, i);
}
Console.Write("Writing file : " + TargetFile + " is successful.\n");
break;
}
catch (Exception e)
{
Console.Write("Writing file : " + TargetFile + " is unsuccessful.\n");
Console.Write(e);
}
finally
{
if (fis != null)
{
fis.Close();
}
if (fos != null)
{
fos.Close();
}
}
}
上記のコードは、大きなファイルを読み取り、新しい大きなファイルに書き込みます。 「intbuffer」値は1024の倍数で設定できます。ソースファイルとターゲットファイルの両方が開いている間、大きなファイルをバイト単位で読み取り、新しいターゲットファイルにバイト単位で書き込みます。メモリが不足することはありません。
テキストをファイルに書き込むため。
public static void WriteToFile(string DirectoryPath,string FileName,string Text)
{
//Check Whether directory exist or not if not then create it
if(!Directory.Exists(DirectoryPath))
{
Directory.CreateDirectory(DirectoryPath);
}
string FilePath = DirectoryPath + "\\" + FileName;
//Check Whether file exist or not if not then create it new else append on same file
if (!File.Exists(FilePath))
{
File.WriteAllText(FilePath, Text);
}
else
{
Text = $"{Environment.NewLine}{Text}";
File.AppendAllText(FilePath, Text);
}
}
ファイルからテキストを読み取るため
public static string ReadFromFile(string DirectoryPath,string FileName)
{
if (Directory.Exists(DirectoryPath))
{
string FilePath = DirectoryPath + "\\" + FileName;
if (File.Exists(FilePath))
{
return File.ReadAllText(FilePath);
}
}
return "";
}
参照用 this は、Microsoftの公式ドキュメントリンクです。