1.4 PipedReader :与 PipedInputStream 对应
2. Writer 2.1 CharArrayWrite : 与 ByteArrayOutputStream 对应 2.2 StringWrite :无与之对应的以字节为导向的 stream 2.3 FileWrite : 与 FileOutputStream 对应 2.4 PipedWrite :与 PipedOutputStream 对应
3、两种不同导向的 stream 之间的转换 3.1 InputStreamReader 和 OutputStreamReader : 把一个以字节为导向的 stream 转换成一个以字符为导向的 stream 。 InputStreamReader 类是从字节流到字符流的桥梁:它读入字节,并根据指定的编码方式,将之转换为字符流。 使用的编码方式可能由名称指定,或平台可接受的缺省编码方式。 InputStreamReader 的 read() 方法之一的每次调用,可能促使从基本字节输入流中读取一个或多个字节。 为了达到更高效率,考虑用 BufferedReader 封装 InputStreamReader , BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 例如: // 实现从键盘输入一个整数 [java] view plaincopy
- String s = null;
- InputStreamReader re = new InputStreamReader(System.in);
- BufferedReader br = new BufferedReader(re);
- try {
- s = br.readLine();
- System.out.println("s= " + Integer.parseInt(s));
- br.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- catch (NumberFormatException e)// 当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
- {
- System.out.println(" 输入的不是数字 ");
- }
InputStreamReader(InputStream) 用缺省的字符编码方式,创建一个 InputStreamReader 。 InputStreamReader(InputStream, String) 用已命名的字符编码方式,创建一个 InputStreamReader 。
OutputStreamWriter 将多个字符写入到一个输出流,根据指定的字符编码将多个字符转换为字节。 每个 OutputStreamWriter 合并它自己的 CharToByteConverter, 因而是从字符流到字节流的桥梁。
|