我需要计算.txt文件中的字符数。我已拉出文件,现在我需要计算字符数。这是我到目前为止所拥有的。
namespace CharCount
{
class Program
{
static void Main(string[] args)
{
string fileName = @"dataentry.txt";
string result;
result = Path.GetFileName(fileName);
Console.WriteLine("GetFileName {0} returns {1}", fileName, result);
Console.ReadLine();
}
}
}
答案 0 :(得分:2)
提供的答案都很有用,但没有人明确指出差异......
File.ReadAllText(filename).Length
下行:你必须阅读整个文件,这里的表现可能很重要。
上行:.NET在读取文件时会考虑字符编码。如果你有一个非ascii文件,而某些字符实际上是多个字节,这将给你字符数而不是字节数。
FileInfo f = new FileInfo(fileName);
long fileLength = f.Length;
下行:这实际上并不检查文件的内容,也无法知道其中的文本是否是每个字符一个字节。它将返回字节数,这可能与字符数不同。
上升:性能 - 您实际上不必阅读该文件。
因此,如果您能够对输入文件做出安全假设(请根据您的意见进行评论),请使用第二个,如果您无法确定接收的是哪种类型的文本文件,请使用第一个
答案 1 :(得分:0)
你应该可以使用:
File.ReadAllText(filename).Length
根据MSDN的字符串'的长度属性'获取的数量 当前String对象中的字符。'
http://msdn.microsoft.com/en-us/library/system.string.length.aspx
您找到的其他答案使用返回字节数的流。
获取当前文件的大小(以字节为单位)。
http://msdn.microsoft.com/en-us/library/system.io.fileinfo.length.aspx
答案 2 :(得分:-1)
FileInfo f = new FileInfo(fileName);
long fileLength = f.Length;
//fileLength should be the number of characters
或
public int GetNumOfCharsInFile(string filePath)
{
int count = 0;
using (var sr = new StreamReader(filePath))
{
while (sr.Read() != -1)
count++;
}
return count;
}