`
wwty
  • 浏览: 543143 次
  • 性别: Icon_minigender_1
  • 来自: 北京-郑州
社区版块
存档分类
最新评论

IO中BufferedReader-BufferedWriter的指针问题

 
阅读更多

最近写了个程序,两个文本文件按行的比较,文本文件只有一列。一个文件20万行,另外一个8万行。

最初我是在两个for循环嵌套中,每次读取来进行比对的,后来有人说频繁的IO操作在性能上是很大的问题,于是我将那个小的文件读取集合,大的文件还是采用io读取操作。

问题就发生在这个过程中,当我将其中的一行和IO读取进行比对时,问题出来了readLine方法一直读到文件的末尾但是没有回退,当再次循环过来时,它是接着往下读,而没有指针复位。最后处理结果如下:

。。。。。。。。
			  Iterator<String> it = set.iterator();
			  while(it.hasNext())
			  {
			     comxfile = it.next();
			     System.out.println(comxfile);
			     
			     brx.mark((int)filex.length()+1);
				 while(true)
				 {
					 rotxfile = brx.readLine();
					 if(rotxfile==null)
						 break;
					 System.out.println("rotxfile:"+rotxfile.substring(0,11));
				 }
				 brx.reset();
			  }
。。。。。。。

 问题解决了之后,和同学沟通交流了一下,他说可以讲所有的都放入集合,然后再比对。我之所以没有全部放入集合,是对内存吃不准,不知道放进去内存会不会崩溃。随后试了一下,没有问题。

分享到:
评论

相关推荐

    全面总结java IO体系

    Java IO体系是Java编程语言中用于处理输入输出操作的核心组件,它允许程序与各种数据源(如文件、网络、内存缓冲区等)进行交互。在Java中,输入输出操作是通过流(Stream)的概念来实现的,流是数据传输的通道,可以...

    2019年IO和NIO1

    本文将深入探讨Java IO中的RandomAccessFile类以及BufferedWriter和BufferedReader的使用。 RandomAccessFile类是Java提供的一种特殊类型的流,它允许对文件进行随机访问,这意味着程序可以随时定位到文件的任意...

    Java之IO流学习总结

    例如,如果需要处理纯文本数据,优先考虑使用字符流,如使用BufferedReader和BufferedWriter提高读写效率。如果处理的是非文本数据,如图片、音频文件等,那么字节流(如FileInputStream和FileOutputStream)更为...

    java IO以追加方式写文件FileWrite

    例如,可以使用`BufferedWriter`提高写入效率,通过`BufferedReader`和`BufferedWriter`组合实现文件的读写操作,或者探讨异常处理策略,如使用`try-with-resources`语句自动关闭流,以避免资源泄露。 总的来说,...

    JAVA流式输入输出与文件处理.docx

    - BufferedReader和BufferedWriter是字符流的过滤流,它们提供缓冲区,提高了读写效率,并且BufferedReader提供readLine()方法方便读取整行文本。 3. File类 - File类是Java.io包中的核心类,用于文件和目录的...

    JavaSE_4_JavaIO操作_3

    Java标准库中提供了四种主要的缓冲流:`BufferedReader`、`BufferedWriter`、`BufferedInputStream`和`BufferedOutputStream`。 - **BufferedReader**:字符输入流,支持按行读取数据。 - **BufferedWriter**:字符...

    \\(^_^)/ Java io 结构

    Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的重要部分。它提供了丰富的类库,使得程序能够与各种设备、文件、网络以及内存数据进行交互。在这个主题中,我们将深入探讨Java IO的结构、核心概念...

    java面试-企业的面试,联动天下,用友等

    - 文件操作:File类,BufferedReader和BufferedWriter等。 - 字节流和字符流的区别,以及转换流。 - NIO(New IO):Channel,Buffer,Selector等。 5. **网络编程**: - Socket编程,TCP和UDP的区别。 - ...

    java_IO操作_(读写、追加、删除、移动、复制、修改)

    在Java编程语言中,IO(Input/Output)操作是处理输入和输出数据的关键部分。本篇文章将详细探讨如何使用Java进行文件的读写、追加、删除、移动、复制和修改等常见操作。我们将首先关注文件的读取方法,因为这是给定...

    java经典面试题,面试过程中最易被问到的

    - 文件操作:File类,缓冲流BufferedReader和BufferedWriter。 7. **网络编程**: - Socket编程:TCP与UDP的区别,Socket和ServerSocket类。 - HTTP协议:理解GET和POST请求。 8. **反射**: - 获取类信息:...

    JAVA面试题集

    - 了解字节流和字符流的区别,以及FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等常用类的用法。 - 掌握NIO(New IO)和AIO(Asynchronous IO)的特点和应用场景。 - 熟悉序列化和反序列...

    java文件管理java文件管理java文件管理

    1. **java.io包**: Java文件管理的核心在于`java.io`包,它提供了大量用于处理输入/输出流的类,如File类、FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等,这些类为我们提供了文件操作的...

    文件读写 文件读写文件读写 文件读写

    - Python的`io.BufferedReader`和`io.BufferedWriter`。 5. 文件定位: - `fseek()` 和 `ftell()` 函数在C语言中用于改变文件指针位置和获取当前位置。 - Java的`SeekableByteChannel`接口提供了`position()`和`...

    java面试题java面试题.doc

    - 缓冲流:BufferedReader、BufferedWriter等提高读写效率。 - NIO(New IO):非阻塞I/O,用于提高并发性能。 7. **反射**: - Class类:动态加载类、获取类信息。 - 构造器、方法和字段的反射调用。 8. **...

    Java面试全集上中两集.rar

    - 缓冲流:提高读写效率,如BufferedReader、BufferedWriter。 - NIO(New IO):非阻塞I/O,包括Channel、Buffer和Selector。 - 文件操作:File类的常用方法,文件的读写操作。 6. **反射**: - Class类:如何...

    网络编程基础篇

    BufferedReader和BufferedWriter用于提高文本读写性能,而DataInputStream和DataOutputStream则支持基本类型的数据读写。对于对象的持久化存储,可以利用ObjectOutputStream和ObjectInputStream实现序列化和反序列化...

    java面试精典题目

    - 缓冲流BufferedReader、BufferedWriter等提高读写效率。 - 转换流InputStreamReader、OutputStreamWriter用于在字节流和字符流之间转换。 7. **反射**: - 获取Class对象,创建动态对象。 - 调用私有方法和...

    Java应用编程150Demo

    - 文件读写:FileReader、FileWriter、BufferedReader、BufferedWriter等类的使用。 - 流的概念,输入流和输出流的区别,以及如何进行数据传输。 - 序列化和反序列化,对象持久化。 4. **多线程** - Thread类和...

    贝壳Java笔试面试题.zip_面试资料下载

    - 缓冲流:使用BufferedReader和BufferedWriter提高读写效率。 - 转换流:InputStreamReader和OutputStreamWriter用于在字节流和字符流之间转换。 5. **网络编程** - Socket编程:理解TCP和UDP协议,掌握Socket...

    第十三届蓝桥杯省赛C/C++ABCG组、JavaABC组真题pdf

    4. **输入输出流**:BufferedReader、BufferedWriter、FileReader、FileWriter等IO类的使用。 5. **多线程**:线程的创建、同步(synchronized、wait、notify等)、线程池。 6. **网络编程**:Socket编程,TCP/IP...

Global site tag (gtag.js) - Google Analytics