⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filereadertest.java

📁 测试感兴趣的 java IO 读操作
💻 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 + -