原理:BufferedReader会一次性从物理流中读取8k(默认数值,可以设置)字节内容到内存,如果外界有请求,就会到这里存取,如果内存里没有才到物理流里再去读。即使读,也是再8k。
而直接读物理流,是按字节来读。
对物理流的每次读取,都有IO操作。IO操作是最耗费时间的。
BufferedReader就是减少了大量IO操作,而为你节省了时间。
简单的说,一次IO操作,读取一个字节也是读取,读取8k个字节也是读取,两者花费时间相差不多。而一次IO的来回操作却要耗费大量时间。
好比是一辆大型汽车(设装100人),要去车站接人到公司,接一个人也是接,接100个人也是接,而时间一样。显然,接100个人最划算。
物理流就是一次一个字节(一个人)
Buffered就是一次8k个字节(100个人)
对于读取定长字节文件,当然BufferedReader更快了!
import java.io.*;
public class Test11 {
private static BufferedReader br = null;
private static File file = null;
private static BufferedWriter bw = null;
public static void main(String[] args) {
String b = null;
file = new File("D:\\abc.txt");
if (!file.exists() != false) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
bw = new BufferedWriter(new FileWriter(file));
FileReader fr = new FileReader("D:\\Log.txt");
br = new BufferedReader(fr);
while ((b = br.readLine()) != null) {
System.out.println(b);
bw.write(b);//输出字符串
bw.newLine();//换行
bw.flush();
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
br.close();
//bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
分享到:
- 2009-02-12 00:00
- 浏览 9270
- 评论(0)
- 论坛回复 / 浏览 (0 / 31304)
- 查看更多
相关推荐
在提供的`FileUtil.java`和`FileTest.java`文件中,可能包含了一些使用`BufferedReader`和`BufferedWriter`进行文件操作的实例代码。`FileUtil.java`可能包含了实用的文件操作工具方法,如读取文件、写入文件等,而`...
文件读写 BufferedReader BufferedWriter 去除代码后面空格 简单 readLine newLine flush
总的来说,`BufferedReader`和`BufferedWriter`是Java I/O中用于提高效率的关键工具,它们通过内存缓冲区实现了对字符流的高效处理,是进行大量字符读写操作时的首选。使用这些类可以显著减少磁盘I/O操作,从而提升...
- 使用`BufferedReader`和`BufferedWriter`提高读写效率。 - 操作完成后记得关闭流,避免内存泄漏。 - 对于大文件,考虑使用`FileChannel`进行分块读写。 - 使用`try-with-resources`语句自动管理资源关闭。 以上...
### Java删除某行和读写TXT文件 在Java中,如果需要从文本文件中删除特定行,实际上并没有直接提供这样的方法。通常的做法是先将文件中的所有内容读取到内存中,然后根据需要过滤掉不需要的行,最后再将处理后的...
本文将详细介绍如何在Android Studio中获取内部存储路径,创建文件夹,以及进行读写和删除文件的操作。 首先,获取内部存储路径通常使用Android的`getFilesDir()`或`getInternalStorageDirectory()`方法。`...
通过`FileReader`和`BufferedReader`读取文件,用`FileWriter`和`BufferedWriter`写入文件,结合`newLine()`方法处理换行,我们可以实现对文件的高效且兼容的操作。这些基础知识是每个Java开发者都需要掌握的,对于...
- 使用`FileInputStream`或`BufferedReader`打开文件,然后使用`DocumentBuilderFactory`和`DocumentBuilder`解析XML内容到DOM树,或者使用SAX或StAX解析器进行流式解析。 - 对于复杂的数据结构,可以使用XPath...
3. 进行IO操作:使用`BufferedReader`和`BufferedWriter`等类进行读写操作。例如,使用`BufferedReader.readLine()`读取文件,`BufferedWriter.write()`写入文件。 4. 关闭流:完成读写后,记得关闭打开的流,避免...
- `fgets()` 和 `fprintf()`:用于读取和写入文本行,前者按指定长度读取,后者格式化输出。 - Python中的`open()`:支持'with'语句,能自动关闭文件,避免资源泄漏。例如:`with open('filename.txt', 'r') as f:...
在Java中,`java.io`包提供了丰富的类和接口来支持文件操作,如`File`、`FileReader`、`FileWriter`、`BufferedReader`和`BufferedWriter`等。首先,我们需要创建一个`File`对象来代表我们想要操作的文件或目录。...
对于大文件,直接使用`FileReader`和`FileWriter`可能会导致内存溢出,这时可以使用`FileInputStream`和`FileOutputStream`配合`DataInputStream`和`DataOutputStream`进行分块读写。如果需要追加内容,记得设置`...
这里我们主要关注 `java.io` 包,它提供了多种类来处理文件的读写操作,如`FileReader`, `FileWriter`, `BufferedReader`, 和 `BufferedWriter`等。 ### 读取文件 首先,我们需要了解如何使用 `BufferedReader` 从...
3. **使用BufferedReader和BufferedWriter**:在Java中,使用`BufferedReader`和`BufferedWriter`进行文件读写可以提高效率,因为它们内部有缓冲区,可以减少磁盘I/O操作的次数。在多线程场景下,每个线程应有自己的...
* 流类库的使用:包括使用 BufferedReader 和 BufferedWriter 实现文件读写操作,使用 System.in 获取用户输入等。 * 文件读写操作:包括将用户输入的文字写入到文件中,并从文件中读取数据。 * 对象流的使用:包括...
本示例"读写文件操作demo-java"旨在教你如何使用Java进行文件的读取和写入,这对于处理数据存储、日志记录或是任何需要与磁盘交互的应用程序至关重要。我们将探讨`java.io`包中的核心类,如`FileInputStream`, `...
- 对于大型文件,考虑使用`RandomAccessFile`或分块读写以优化性能。 通过以上步骤,你可以在Android应用中实现对SD卡的读写操作。不过,随着Android系统的更新,对于外部存储的访问方式可能会有所变化,建议遵循...
除了使用`BufferedReader`和`BufferedWriter`,Java 7引入了try-with-resources语句,这是一种更简洁且安全的资源管理方式,可以自动关闭流。以下是使用try-with-resources的示例: ```java import java.io....
在Java编程语言中,文件读写操作...在实际开发中,还需要根据具体需求选择合适的方法和策略,如处理大文件时可能需要分块读写,或者使用异步I/O来提高性能。通过不断地实践和学习,你将能熟练掌握Java的文件操作技能。