问题描述
- 字符流 比 字节流 效率高?
- java老师说操作文件的时候,如果文件是文本的就用 字符流,因为 字符流 操作文本效率高。 可是 字符流 也是基于 字节流 实现的呀! 我也做过试验,copy一个文本文件,结果是字节流的速度快.... 而且 字节流 读取速度快慢取决于每次读取的字节数组大小,这样说来 字符流 完全没优势呀!
小弟java新手,问题可能有点浅薄,忘各路大虾百忙中解答下下,谢谢。
解决方案
package io;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.util.Calendar;
public class io4 {
public static void main(String[] args) throws IOException {
Calendar startend;
start=Calendar.getInstance();
FileInputStream fis = new FileInputStream(""c:a.java"");
char ch;
int j = fis.available();
for (int i = 0; i < j; i++) {
ch = (char) fis.read();
}
fis.close();
end=Calendar.getInstance();
System.out.println(end.getTimeInMillis()-start.getTimeInMillis());
start=Calendar.getInstance();
BufferedInputStream bis = new BufferedInputStream(
new FileInputStream(""c:a.java""));
char ch2;
int j2 = bis.available();
for (int i = 0; i < j2; i++) {
ch2 = (char) bis.read();
}
bis.close();
end=Calendar.getInstance();
System.out.println(end.getTimeInMillis()-start.getTimeInMillis());
}
}
用这个测试一下
解决方案二:
一般来说文本文件是字符流较快,字节流适合用于非文本文件
解决方案三:
所有流的地层都是字节实现的,但是对于字符的文本信息,那肯定是字符流,快些,因为加入还是字节读取的话,中间还的用InputSteamReader或者OutputStreamWriter转换