java转换流

/**

* 转换流InputStreamReader/OutputStreamWriter

*/

public class ConvertStream1 {

public static void main(String[] args) {

try (

InputStream in = System.in;

//System.in是InputStream对象,用于读取键盘输入/数据源的字节,是字节流、节点流,每次.read()只能读取一个字节,当用Scanner(System.in)的nextLine()方法时会将字节流转换为字符流,再通过BufferedReader读取整行内容

OutputStream out = System.out;

//System.out是PrintStream对象,PrintStream继承FilterOutputStream继承OutputStream,用于显示接收到的内容,是字节流、节点流,System.out.println()方法同样将out字节流转换为字符流,再通过BufferedWriter输出整行内容

InputStreamReader isr = new InputStreamReader(in);

//InputStreamReader处理字节流,实现字节流向字符流的转换,是处理流、字符流

OutputStreamWriter osw = new OutputStreamWriter(out);

//OutputStreamWriter将字节输出流转换为字符输出流

BufferedReader br = new BufferedReader(isr);

//将转换流传给字符缓冲流

BufferedWriter bw = new BufferedWriter(osw)

){

String inp;

do {

bw.write("请输入:");

bw.flush();

inp = br.readLine();

//.readLine()是读取一行内容,当System.in等待用户输入完成字符串后.read()只能读取一个字节的内容,通过嵌套处理流调用.readLine()将一行内容全部读取

bw.write("请确认您输入的内容是否正确:" + inp);

//使用字符处理流.write()

bw.newLine();

bw.write("确认Y/N:");

bw.flush();

//flush()在每一段输出的末尾使用,不需要每输出一次执行一遍

inp = br.readLine();

} while (!"y".equalsIgnoreCase(inp));

}catch (Exception e){

e.printStackTrace();

}

//System.out可以输出字节到控制台,当BufferedWriter写入字符串String时将字符串变为字符数组char[],后续执行flush时,调用内置的OutputStreamWriter,通过流编码器将字符数组char[]根据设定的字符集charset转化为字节数组byte[],这个过程是编码的过程

//System.out将编码后的字节数组byte[]输出到控制台,控制台再对bytes进行解码,转化为字符串/文本显示出来

try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("iostream/testFile4.txt")));

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("iostream/testFile5.txt")))){

//字节流外面套转换流再套缓冲流

int num = 1;

for (String line = br.readLine();line!=null;line = br.readLine()){

bw.write(num+". "+line);

//字节流无法使用拼接字符串添加行号,通过嵌套后使用缓冲流的write,作用同BufferedWriter(FileWriter)的write,而FileWriter对象内部也会生成OutputStreamWriter(FileOutputStream)对象

bw.newLine();

num++;

}

bw.flush();

}catch (Exception e){

e.printStackTrace();

}

}

}

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章