📄 filereadertest.java
字号:
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import junit.framework.TestCase;
/**
* 测试感兴趣的 java 读操作,看它们的性能如何
*
*/
public class FileReaderTest extends TestCase {
private String info = "<a>流程信息</a>";
/**
* @param args
*/
public static void main(String[] args) {
}
/**
* 直接写文件,这依赖于系统的默认编码,可能出现乱码现象
*
* @throws Exception
*/
public void testFileReader() throws Exception {
}
/**
* 测试读 UTF-8 文件
*
* @throws IOException
*/
public void testUTF8Writer() throws IOException {
Writer writer = new OutputStreamWriter(new FileOutputStream("/test.txt"), "UTF-8");
writer.write(info);
writer.close();
}
//测试读流
public void testBufferedInputStream() throws Exception {
long currentTime = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
BufferedInputStream remoteBIS = new BufferedInputStream(new FileInputStream("/test.txt"));
ByteArrayOutputStream baos = new ByteArrayOutputStream(10240);
byte[] buf = new byte[1024];
int bytesRead = 0;
while (bytesRead >= 0) {
baos.write(buf, 0, bytesRead);
bytesRead = remoteBIS.read(buf);
}
remoteBIS.close();
baos.close();
String content = baos.toString("UTF-8");
}
System.out.println("执行 1000 次,耗时:" + Long.toString(System.currentTimeMillis() - currentTime) + " 毫秒");
}
//测试 BufferedReader
public void testBufferedReader() throws Exception {
long currentTime = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
StringBuffer sb = new StringBuffer();
BufferedReader in = new BufferedReader(new FileReader("/test.txt"));
String s;
while ((s = in.readLine()) != null) {
sb.append(s);
sb.append("\n");
}
in.close();
}
//String content = baos.toString("UTF-8");
System.out.println("执行 1000 次,耗时:" + Long.toString(System.currentTimeMillis() - currentTime) + " 毫秒");
}
//测试 BufferedReader
public void testInputStreamReader() throws Exception {
long currentTime = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
StringBuffer sb = new StringBuffer();
/*此处读文件时用了buffer,如果不用,性能损失一倍*/
BufferedReader in = new BufferedReader(
new InputStreamReader(new FileInputStream("/test.txt"), "utf-8"));
String s;
while ((s = in.readLine()) != null) {
sb.append(s);
sb.append("\n");
}
in.close();
String content = sb.toString();
}
//String content = baos.toString("UTF-8");
System.out.println("执行 1000 次,耗时:" + Long.toString(System.currentTimeMillis() - currentTime) + " 毫秒");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -