4.转换流:如何通过转换流将字节流转换为字符流???

    技术2022-07-15  80

    4.转换流:如何通过转换流将字节流转换为字符流???

    学习:第7遍


    1.如何通过转换流将字节流转换为字符流???

    用于将字节流转换为字符流,同时可以实现编码的转换

    在转换时需要指定使用的字符集,如果不指定默认使用JVM的字符集

    在Java中没有提供将字符流转换为字节流的方法,不支持该操作

    InputStreamReader 将字节输入流转换为字符输入流

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


    public class TestInputStreamReader { public static void main(String[] args) { try( /** * FileInputStream fis = new FileInputStream("a.txt") * 作用:先获得文件字节流 * InputStreamReader isr = new InputStreamReader(fis, "gbk") * 作用:转换包装流:将文件字节流转换为字符流,转换流可以指定字符集 * BufferedReader reader=new BufferedReader(isr) * 作用:缓冲包装流:将字符流包装成缓冲字符流 */ // 以utf-8编码读取文件,因为eclipse个人设置字符集为utf-8 BufferedReader reader=new BufferedReader( new InputStreamReader( new FileInputStream("a.txt"),"utf-8" ) ); BufferedReader reader2 = new BufferedReader( new InputStreamReader( //获得src下的b.txt的getResourceAsStream()得到的就是输入字节流 TestInputStreamReader.class.getClassLoader().getResourceAsStream("b.txt") ) ); // 以gbk编码写出文件,用windows自带文本编辑器可以打开 BufferedWriter writer1=new BufferedWriter( new OutputStreamWriter( new FileOutputStream("c.txt"),"gbk") ); //PrintWriter底层实现就是上面三行,字节流然后转换流加换编码集,然后缓冲字符流打印 PrintWriter writer = new PrintWriter("c:/aaa/cffc.txt", "gbk"); ){ String line=""; while((line=reader.readLine())!=null){ writer.println(line); } System.out.println("复制文件成功"); }catch(IOException e){ e.printStackTrace(); } } }
    Processed: 0.014, SQL: 9