java判断文件结束_关于java读取文件时,如何判断读取文件是否到达末尾?

一、前言

java读取文件时,如果到达文件末尾,再进行读取时会发生异常,所以我们需要判断读取文件已经到达末尾。对于文件读取我们通常会采用不同的读取方式,如用InputStream流读取字节流、用Reader字符输入流的方式进行读取或者通过BufferedReader的行读取方式readLine方式,对于不同的方式读取到文件末尾时,都会返回特殊标识值-1或者null,下面具体上面几次方式符合判断文件是否结束。

二、示例代码

InputStream方式

一种是通过read()方法返回读取字符信息,如到达末尾,则放回-1,如下代码:int  tmp=-1;@b@ FileInputStream  fis=new FileInputStream("c:/test1.txt");@b@ BufferdInputStream bis=new BufferedInputStream(fis);@b@ @b@  while((tmp==bis.read()!=-1){  @b@     System.out.println((char)tmp);@b@  } @b@ bis.close(); @b@ fis.close();

二种通过read(byte[] b)返回读取内容到字节数组中总字节数,如到末尾,总字节数返回为-1,示例代码如下:FileInputStream fis=new FileInputStream("c:/test2.txt");@b@byte[] b=new byte[1024];StringBuffer sb=new StringBuffer();@b@int len;@b@while((len=input.read(b))!=-1){  @b@  sb.append(b);@b@}@b@System.out.print(sb.toString());//打印所有读出的内容

Reader方式

一种也是用read()方法,通过返回-1判断文件读取完成,示例代码如下:FileReader fr = new FileReader("f:/test3.txt");@b@  try {@b@        int i;@b@        while ((i = fr.read()) != -1) {@b@            System.out.print((char) i);@b@        }@b@   } finally {@b@        fr.close();@b@   }@b@}

另一个钟是封装BufferedReader方式,直接以一行行读取,如到达末尾放回null,示例如下:FileReader fr = new FileReader("f:/test4.txt");@b@ BufferdReader br=new BufferedReader(fr);@b@ String tmp=null;@b@ while((tmp=br.readLine())!=null){@b@     System.out.println(tmp);@b@ }@b@ br.close();@b@ fr.close();

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值