[英]Conflicting character counts
我正在嘗試查找給定文本文件中的字符數。
我嘗試過使用掃描儀和BufferedReader,但結果卻相互矛盾。 通過使用掃描儀,我在添加新行字符后連接每一行。 像這樣:
FileReader reader = new FileReader("sampleFile.txt");
Scanner lineScanner = new Scanner(reader);
String totalLines = "";
while (lineScanner.hasNextLine()){
String line = lineScanner.nextLine()+'\n';
totalLines += line;
}
System.out.println("Count "+totalLines.length());
這將返回我的文件的真實字符數,即5799
而當我使用時:
BufferedReader reader = new BufferedReader(new FileReader("sample.txt"));
int i;
int count = 0;
while ((i = in.read()) != -1) {
count++;
}
System.out.println("Count "+count);
我得到5892。
我知道如果只有一行,使用lineScanner將會關閉,但對於我的文本文件,我得到了正確的輸出。
另外在記事本++中,文件長度(以字節為單位)為5892,但沒有空格的字符數為5706。
您的文件可能以\\r\\n
而不是\\n
終止行。 這可能會導致您的差異。
您必須考慮文本文件中的換行符/回車符。 這也算作一個角色。
我建議使用BufferedReader,因為它會返回更准確的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.