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();
                    }
                }
            }
        }
    }
  • 相关阅读:
    jquery ajax参数详解
    压缩解压函数实现
    WCF 大数据量如何从服务端传到客户端
    [DllImport("kernel32.dll")]
    Oracle数据库使用基础和实例
    Js常用的动态效果
    Js使用正则实现表单验证
    Oracle数据库理论知识
    HTML5,CSS3,JavaScript基础知识与使用
    速读《人月神话》
  • 原文地址:https://www.cnblogs.com/xixixing/p/9526840.html
Copyright © 2011-2022 走看看