计算.text文件中的字符

时间:2014-06-06 00:47:29

标签: c# file-io

我需要计算.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();
        }
    }
}

3 个答案:

答案 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;
}

请参阅:Counting number of characters in a file C#