java-BufferedReader读取文件以后,怎么将文件指针移到文件开头

问题描述

BufferedReader读取文件以后,怎么将文件指针移到文件开头

代码附上:
public class BufferedTest {
public static void main(String[] args) throws IOException
{
BufferedReader bReader = new BufferedReader(
new InputStreamReader(new FileInputStream("countBrowser/part-r-00000")));

    String msg = null;
    while((msg = bReader.readLine()) != null)
    {
        System.out.println(msg);
    }

    while((msg = bReader.readLine()) != null)
    {
        System.out.println(msg);
    }
}

}
文件的内容只是显示了一次,应该是使用bReader读完以后,文件指针移到了文件的末尾,再读取就读取不出来了,但是怎么移到文件的开头呢?求教大家了

解决方案

用mark和reset的话,也可以重新回到文件首部。mark是在当前位置标记一下,然后reset回到最后一次标记的位置。那么缓存区的内容就可以重复使用了。
示例代码:

 try {
            File file = new File("D:/Test.java");
            BufferedReader reader = new BufferedReader(new FileReader(file));
            String content=reader.readLine();
            reader.mark((int)file.length());
            while(content!=null){
                System.out.println(content);
                content=reader.readLine();
            }

            reader.reset();
            content=reader.readLine();
            while(content!=null){
                System.out.println(content);
                content=reader.readLine();
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

解决方案二:

让bReader重新执行文件。就是再执行一遍。

 bReader = new BufferedReader(
new InputStreamReader(new FileInputStream("countBrowser/part-r-00000")));

解决方案三:

reader.mark((int)file.length()); 这个参数有限制,还是用文件长度保险些。。。

解决方案四:

reader.mark((int)file.length()); 这个参数有限制,还是用文件长度保险些。。。
mark()的这个参数,我猜应该是这样的吧,例如:
file总共有10行,然后mark(3);
再reset();
然后读取到的应该是从**文件的开头到第三行**

时间: 2024-11-08 22:32:59

java-BufferedReader读取文件以后,怎么将文件指针移到文件开头的相关文章

java javascript-如何用java去读取FTP下的文件目录,可以手动选择文件上传路径

问题描述 如何用java去读取FTP下的文件目录,可以手动选择文件上传路径 如何用JAVA实现在本地浏览器点击添加按钮,跳转到FTP服务器的目录下,可以浏览FTP目录,选择需要的文件,然后把路径+文件名添加到input中,后台或js怎么实现?

java实现读取txt文件中的内容_java

我们先来看个例子 import java.io.*; /** * Created by liguoqing on 2016/3/28. */ public class ReadTxtFile { public static void readTxt(String filePath) { try { File file = new File(filePath); if(file.isFile() && file.exists()) { InputStreamReader isr = new

在Java中读取写入XML文件(DEMO_004)

1.如果要将读取的XML文件,再写入另外的一个新XML文件中,首先必须新建一个和要读取相对应的beans类,通过set方法填充数据,get方法获取数据. 2.在读取XML文件的时候,需要用到ArrayList集合来存储每次从原XML文件里面读取的数据,在写入新的XML文件的时候,也要通过ArrayList集合获取要遍历的次数,同时将数据写入到新的xml文件中 3.详细代码如下: public static void main(String[] args) { try { String url =

java实现读取、删除文件夹下的文件

  本文给大家分享的是java实现读取.删除文件夹下的文件,其中File.delete()用于删除"某个文件或者空目录"!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,有需要的小伙伴可以参考下. java实现读取.删除文件夹下的文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

java多线程读取集合对象后写入同一文件

问题描述 java多线程读取集合对象后写入同一文件 有一个学生对象,包含学号.姓名.班级属性 生成10个学生对象后放入集合中 运用多线程读取集合中学生对象后将学生信息写入到同一文件(按学生学号排序) 本人多线程实在不会,求大神解答.(不实现排序的也行)主要是能有多线程方面的代码提供下参考 解决方案 文件写使用多线程要加锁,还不如用单线程,你这是要干嘛

java FileInputStream读取文件问题

问题描述 java FileInputStream读取文件问题 如图所示,确定当前路径下是有这个properties文件的,但不知道为什么FIS读取路径的时候会自动减掉一个/,求教这个应该如何解决 解决方案 你这个路径肯定不对.参数的文件路径应该是项目最终部署后的路径,而不是你写的http://这个路径. 你要访问项目文件,应该获取项目根目录的,有好几种获取项目根目录的方法的,我知道这种: request.getServletContext().getRealPath("/"); 解决

java实现读取、删除文件夹下的文件_java

java实现读取.删除文件夹下的文件 package test.com; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; public class ReadFile { public ReadFile() { } /** * 读取某个文件夹下的所有文件 */ public static boolean readfile(String filepath) throws Fi

java 怎样读取txt文件部分字段写入excel

问题描述 java 怎样读取txt文件部分字段写入excel txt文件中有很多行记录,要将"时间"."账号=xxx"."金额=xxx"等几个字段记录下来变成一条记录,然后将这些类似的多条记录存入excel文件中 解决方案 使用poi技术,Apache软件基金会的一个项目,文本文档的格式得有,比如用空格分隔数据项,这样再结合poi就行了! 解决方案二: 可以加我QQ853695231,我帮你实现!! 解决方案三: 要处理的数据为以下数据,需要将数

java如何读取doc文件

问题描述 使用java如何读取doc文件,保证不会乱码 解决方案 如果不需要把图片读取出来,可以用下面的方法 public static void testWord1(){ try { //word 2003: 图片不会被读取 InputStream is = new FileInputStream(new File("c:\a.doc")); WordExtractor ex = new WordExtractor(is); String text2003 = ex.getText(