1个回答
展开全部
一般是通过判断读取函数read的返回值是否是-1来判断是否是文件结束了。
采用计数的方式来判断不准确,可能是下面原因:
读取的时候可能会有其他进程或者线程对读取的文件有写的操作,所以可能不准确。
另外需要多余的一个变量来维持计数,不是很好。
public class Test {
public static void main(String[] args) {
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream(new File("test.txt"));
int read = 0;
ByteBuffer byteBuffer = ByteBuffer.allocate(inputStream.available());
while ((read = inputStream.read()) != -1) {
byteBuffer.put((byte) read);
}
System.out.println(new String(byteBuffer.array()));
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询