问题描述
importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStreamReader;publicclassReadFile{publicvoidreadTxtFile(){StringfilePath="C:/Users/Administrator/Desktop/新建文件夹/1.txt";try{Stringencoding="GBK";Filefile=newFile(filePath);if(file.isFile()&&file.exists()){InputStreamReaderread=newInputStreamReader(newFileInputStream(file),encoding);BufferedReaderbufferedReader=newBufferedReader(read);StringlineTxt=null;Stringa="-1";while((lineTxt=bufferedReader.readLine())!=null){System.out.println(lineTxt);if((注解:这里判断是否读完)){System.out.println("调用无限循环Timing");}}bufferedReader.close();read.close();}}catch(IOExceptione){e.printStackTrace();}}publicstaticvoidmain(String[]args){ReadFilerf=newReadFile();rf.readTxtFile();}}
解决方案
解决方案二:
while((lineTxt=bufferedReader.readLine())!=null)你这句就是了啊,读到文件结束这个条件就是false了
解决方案三:
楼上说的对,为空null既是读取完。
解决方案四:
readLine()方法如果读取到末尾,会返回Null
解决方案五:
Strings=null;while((s=bufferedReader.readLine())!=null)
解决方案六:
while((lineTxt=bufferedReader.readLine())!=null)已经作个判断了。
解决方案七:
楼上说的都对
解决方案八:
bufferedReader.readLine())!=null
解决方案九:
教你个更简单的方法:for(Stringline=null;(line=reader.readLine())!=null;){System.out.println(line);}
解决方案十:
直接api文档,朋友。readLinepublicStringreadLine()throwsIOException读取一个文本行。通过下列字符之一即可认为某行已终止:换行('n')、回车('r')或回车后直接跟着换行。返回:包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回null抛出:IOException-如果发生I/O错误
解决方案十一:
BufferedReader-readLineReturns:AStringcontainingthecontentsoftheline,notincludinganyline-terminationcharacters,ornulliftheendofthestreamhasbeenreached
解决方案十二:
条件已经写在while里面了,不需要再来if判断了