package application;
import java.io.*;
public class HelloApplication {
public static void main(String args[]){
1 int count;
2 byte input[] = new byte[256];3 DataInputStream stdin = new DataInputStream(System.in); // 从键盘读取输入
4 BufferedInputStream bufin = new BufferedInputStream(stdin); // 创建输入缓冲区5 DataOutputStream stdout = new DataOutputStream(System.out); //从屏幕输出
6 BufferedOutputStream bufout = new BufferedOutputStream(stdout);//创建输出缓冲区
7 PrintStream p = new PrintStream(System.out); //从屏幕输出
try {
8 p.print("请输入字符串,结束请按Enter...\n" + "==> ");
9 count = bufin.read(input);
10 p.println("读入字符数: " + count);
11 p.print("输入的字符串为: ");
12 bufout.write(input, 0, count); // 写入位串流
13 bufout.flush(); // 强制输出
14 p.close(); // 关闭打印流
15 stdin.close(); // 关闭输入流
16 bufin.close(); // 释放输入缓冲区
17 stdout.close(); // 关闭输出流
18 bufout.close(); // 释放输出缓冲区
} catch(IOException e){
System.out.println("发生I/O异常!");
}
}
}问题1: 就是直接定义BufferedInputStream bufin = new BufferedInputStream
(System.in);与通过语句3、4定义的bufin有什么区别啊(bufin已有一样的问题)问题2: 各个输入输出流的关闭是否要有一定的次序
import java.io.*;
public class HelloApplication {
public static void main(String args[]){
1 int count;
2 byte input[] = new byte[256];3 DataInputStream stdin = new DataInputStream(System.in); // 从键盘读取输入
4 BufferedInputStream bufin = new BufferedInputStream(stdin); // 创建输入缓冲区5 DataOutputStream stdout = new DataOutputStream(System.out); //从屏幕输出
6 BufferedOutputStream bufout = new BufferedOutputStream(stdout);//创建输出缓冲区
7 PrintStream p = new PrintStream(System.out); //从屏幕输出
try {
8 p.print("请输入字符串,结束请按Enter...\n" + "==> ");
9 count = bufin.read(input);
10 p.println("读入字符数: " + count);
11 p.print("输入的字符串为: ");
12 bufout.write(input, 0, count); // 写入位串流
13 bufout.flush(); // 强制输出
14 p.close(); // 关闭打印流
15 stdin.close(); // 关闭输入流
16 bufin.close(); // 释放输入缓冲区
17 stdout.close(); // 关闭输出流
18 bufout.close(); // 释放输出缓冲区
} catch(IOException e){
System.out.println("发生I/O异常!");
}
}
}问题1: 就是直接定义BufferedInputStream bufin = new BufferedInputStream
(System.in);与通过语句3、4定义的bufin有什么区别啊(bufin已有一样的问题)问题2: 各个输入输出流的关闭是否要有一定的次序
(System.in);与通过语句3、4定义的bufin有什么区别啊(bufin已有一样的问题)答:使用BufferedInputStream 可以提高读写的效率..问题2: 各个输入输出流的关闭是否要有一定的次序答:当然要有顺序,从最初的开始.依次向后关..或者直接关闭最上层的包装类就行了.他会自动关闭被包装了的对象
问题1如下:
BufferedInputStream bufin = new BufferedInputStream(System.in);
中的bufin与
DataInputStream stdin = new DataInputStream(System.in);
BufferedInputStream bufin = new BufferedInputStream(stdin);
这两句中定义的bufin有何区别
JAVA 流分为两类,一类处理二进制,一类处理文本,不要乱用。
从另一个方面,JAVA 流又分为节点流和过滤器流。
节点流是流的起点或终点,过滤器流是起点和终点之间的管道。
节点流提供了 IO 处理中最基本的功能,而各种过滤器流是为了在节点流或其他过滤器流的基础上提供更多的功能。明白了这些,楼主就会明白为什么我说这段代码不对头了,只有当我们需要使用某种过滤器提供的特有功能的时候,我们才应该去使用那种过滤器,否则就完全没必要使用它。