zoukankan      html  css  js  c++  java
  • 字节流转字符流OutputStreamWriter、InputStreamReader,关闭流的方法

    转换时可以指定编码格式:GBK、UTF-8

    public class Demo {
        public static void main(String[] args) {
            File f = new File("word.txt");
            FileOutputStream out = null;//字节流
            OutputStreamWriter osw = null;//字节流转字符流
            BufferedWriter bw = null;//缓冲字符流
            try {
                out = new FileOutputStream(f);
                osw = new OutputStreamWriter(out, "GBK");//字节流转字符流,编码格式GBK
                bw = new BufferedWriter(osw);
                bw.write("夕西行");
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {//注意关闭顺序,由后至前
                if (bw != null) {
                    try {
                        bw.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (osw != null) {
                    try {
                        osw.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (out != null) {
                    try {
                        out.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            FileInputStream in = null;//字节流
            InputStreamReader isr = null;//字节流转字符流
            BufferedReader br = null;//缓冲字符流
            try {
                in = new FileInputStream(f);
                isr = new InputStreamReader(in, "GBK");
                br = new BufferedReader(isr);
                System.out.println(br.readLine());
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (isr != null) {
                    try {
                        isr.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (in != null) {
                    try {
                        in.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

     关闭流的另外一种方法(推荐)。在try的()中写入代码,try-catch结束,流自动关闭

    public class Demo {
        public static void main(String[] args) {
            File f = new File("word.txt");
            //在try的()中写入代码,try-catch结束,流自动关闭
            try (FileOutputStream out = new FileOutputStream(f);
                 OutputStreamWriter osw = new OutputStreamWriter(out, "GBK");
                 BufferedWriter bw = new BufferedWriter(osw);) {
                bw.write("夕西行");
            } catch (IOException e) {
                e.printStackTrace();
            }
            FileInputStream in = null;//字节流
            InputStreamReader isr = null;//字节流转字符流
            BufferedReader br = null;//缓冲字符流
            try {
                in = new FileInputStream(f);
                isr = new InputStreamReader(in, "GBK");
                br = new BufferedReader(isr);
                System.out.println(br.readLine());
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (isr != null) {
                    try {
                        isr.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (in != null) {
                    try {
                        in.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
  • 相关阅读:
    一、区块链,这次不容错过
    二、常用固件升级
    2.监控利器nagios手把手企业级实战第一部
    四、NOSQL之Redis持久化缓存服务基础实战第三部
    三、NOSQL之Memcached缓存服务实战精讲第二部
    linux重装docker-compose后无法执行docker-compose命令
    mongodb启用auth,使用密码登录
    Vue的三个点es6知识,扩展运算符
    关于同一台服务器上两个PHP项目相互访问超时的问题
    ffmpeg生成视频封面图
  • 原文地址:https://www.cnblogs.com/xixixing/p/9526840.html
Copyright © 2011-2022 走看看