黑马程序员技术交流社区

标题: 为什么fileread要接着上一次的读?求详解 [打印本页]

作者: 陈春    时间: 2013-7-30 23:46
标题: 为什么fileread要接着上一次的读?求详解
本帖最后由 杨兴庭 于 2013-7-31 23:16 编辑

什么fileread要接着上一次的读?求详解
作者: 黄兴旺    时间: 2013-7-30 23:53
我怎么看不懂啊!!{:soso_e150:}
作者: lkjghvcx@163.co    时间: 2013-7-31 10:26
它里面有个指针,记录读取的位置,每次读取自动后移,
FileReader fr = new FileReader("data.txt");  
   //调用读取流对象的read方法
   //read()方法一次只读一个字符,而且会自动向下读。   
   int ch=0;   
   while((ch=fr.read())!=-1)   //每次读一个字符,指针后移到下一字符
   {
      sop((char)ch);
   }
或:
String s1=null;
while((s1=bfr.readLine())!=null)       //每次读一行,指针后移到下一行
System.out.println(s1);
亦或:BufferedInputStream in=new BufferedInputStream(new FileInputStream("pic.jpg"));
byte[] bytes=new byte[1024];
int len=0;
while((len=in.read(bytes))!=-1){               //每次读bytes个字节,len为实际读取的长度,指针后移len
   .......................................
}

一般的流都是这样,
特殊的有RandomAccessFile,它有seek方法,可以改变读取的位置




作者: 陈春    时间: 2013-7-31 21:23
黄兴旺 发表于 2013-7-30 23:53
我怎么看不懂啊!!

很简单,就是指针为什么要记住每次读取的位置。
作者: 陈春    时间: 2013-7-31 21:24
lkjghvcx@163.co 发表于 2013-7-31 10:26
它里面有个指针,记录读取的位置,每次读取自动后移,
FileReader fr = new FileReader("data.txt");  
    ...

恩恩。谢谢。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2