光阴似箭催人老,日月如移越少年。
public static void main(String[] args) throws IOException { File file = new File("/home/yangxiaohuan/Documents/TokenizeThenSplitParallelDeletePatternLTZero.txt"); InputStreamReader read = new InputStreamReader(new FileInputStream(file), "UTF-8");// 考虑到编码格式 BufferedReader br = new BufferedReader(read); int cnt=0; while(br.ready()){ String text = br.readLine(); cnt++; if(cnt>=47334){ System.out.println(text); } System.out.println("cnt = "+cnt); } } }
原來的程式碼需要導入下面的類別import java.nio.file.Files;import java.nio.file.Paths;但是換成這種形式import java.io.File;import java.io. FileInputStream;就是正常的,沒有出錯。 而且還有朋友說,將原來的文本裡面,將出錯的那一行,刪除一個字符也是不會報錯的。很奇怪的問題。不知道為啥用nio.file.Files就是有問題的
謝邀。你可能搞錯了IO和NIO之間的區別,最基本的一點是IO是面向流的,NIO面向緩衝區的,而你的程式碼很明顯是使用了BufferedReader以及InputStreamReader流,如果使用nio,readLine根本不能讀取,NIO只能讀取緩衝區,掃描緩衝區的大小,並且在解析資料時,比起阻塞IO流,NIO需要付出更大的代價。
原來的程式碼需要導入下面的類別
import java.nio.file.Files;
import java.nio.file.Paths;
但是換成這種形式
import java.io.File;
import java.io. FileInputStream;
就是正常的,沒有出錯。
而且還有朋友說,將原來的文本裡面,將出錯的那一行,刪除一個字符也是不會報錯的。很奇怪的問題。不知道為啥用nio.file.Files就是有問題的
謝邀。你可能搞錯了IO和NIO之間的區別,最基本的一點是IO是面向流的,NIO面向緩衝區的,而你的程式碼很明顯是使用了BufferedReader以及InputStreamReader流,如果使用nio,readLine根本不能讀取,NIO只能讀取緩衝區,掃描緩衝區的大小,並且在解析資料時,比起阻塞IO流,NIO需要付出更大的代價。