I am trying to implement a tiny text file read / write class FileIO
in order to make the operations of reading / writing pure text files easily. The usage is like:
FileIO.Instance.FileWrite("TextFile1.txt", "This is a test1.");
FileIO.Instance.FileWrite("TextFile2.txt", "This is a test2.");
Console.WriteLine(FileIO.Instance.ReadTxTFile("TextFile1.txt", System.Text.Encoding.Default));
Console.WriteLine(FileIO.Instance.ReadTxTFile("TextFile2.txt", System.Text.Encoding.Default));
The experimental implementation
The experimental implementation of FileIO
class is as below.
class FileIO
{
public readonly static FileIO Instance = new FileIO();
public void FileWrite(string filename, string inputString)
{
FileStream file_stream = new FileStream(filename, FileMode.Append);
byte[] Input_data = System.Text.Encoding.Default.GetBytes(inputString);
file_stream.Write(Input_data, 0, Input_data.Length);
file_stream.Flush();
file_stream.Close();
}
public void FileWrite(string filename, string inputString, FileMode fileMode)
{
FileStream file_stream = new FileStream(filename, fileMode);
byte[] Input_data = System.Text.Encoding.Default.GetBytes(inputString);
file_stream.Write(Input_data, 0, Input_data.Length);
file_stream.Flush();
file_stream.Close();
}
public void FileWrite(string filename, string inputString, FileMode fileMode, Encoding encoding)
{
FileStream file_stream = new FileStream(filename, fileMode);
byte[] Input_data = encoding.GetBytes(inputString);
file_stream.Write(Input_data, 0, Input_data.Length);
file_stream.Flush();
file_stream.Close();
}
public string ReadTxTFile(string filename, Encoding encoding)
{
System.IO.StreamReader textreader;
string inputString;
inputString = "";
try
{
textreader = new System.IO.StreamReader(filename, encoding);
}
catch (Exception)
{
return "";
throw;
}
inputString = textreader.ReadToEnd();
textreader.Close();
return inputString;
}
}
If there is any possible improvement about:
Performance: including data reading/writing speed things
The naming and readability
Potential drawbacks of the implemented methods
, please let me know.
File.ReadAllText
andFile.WriteAllText
? Also, you use classes that implementIDisposable
yet you don'tDispose()
of them. And why aren't you encapsulating their uses in ausing
? \$\endgroup\$Dispose()
method should be added? May I update the question? \$\endgroup\$File.ReadAllText
andFile.WriteAllText
are already exist in .NET. Thus you don't need the code you wrote. Learn what theFile
class can. \$\endgroup\$Dispose()
is needed depends on the case. The best approach is to use ausing
: stackoverflow.com/questions/17357258/… \$\endgroup\$