package com.java;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
public class IOTest1 {
/**
* 控制台高效输入输出(使用缓冲区,用到装饰者模式)
*/
public static void main(String[] args) {
BufferedInputStream bis = new BufferedInputStream(System.in);
BufferedOutputStream bos = new BufferedOutputStream(System.out);
try {
// 单个字符的循环输入输出
oneWordIO(bis, bos);
// 一行一行循环输入输出
oneLineIO(bis, bos);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bos.close();
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 一行一行循环输入输出
*/
private static void oneLineIO(BufferedInputStream in,
BufferedOutputStream out) throws IOException {
byte[] buf = new byte[1024];
int len = -1;
while ((len = in.read(buf)) != -1) {
out.write(buf, 0, len);
out.flush();
}
}
/**
* 单个字符的输入输出
*/
private static void oneWordIO(BufferedInputStream in,
BufferedOutputStream out) throws IOException {
int ch = -1;
while ((ch = in.read()) != -1) {
out.write(ch);
out.flush();
}
}
}
java IO总结之字节流操作控制台输入输出(高效)
最新推荐文章于 2023-06-18 20:04:43 发布
本文介绍了如何使用Java的BufferedInputStream和BufferedOutputStream实现控制台输入输出的效率提升。通过装饰者模式,分别展示了单个字符和整行的循环输入输出方法,利用缓冲区提高程序性能。
摘要由CSDN通过智能技术生成