zoukankan      html  css  js  c++  java
  • 【深入Java基础】Java IO 使用

    一个常用的读取和写入txt的工具类

    package util;
    
    import java.io.*;
    
    /**
     * @author
     * wxg
     */
    public class TxtUtil {
        /**
         * 读取txt文件
         * @param path
         * 文件路径
         * @return
         */
        public StringBuilder readTxt(String path){
            return readTxt2(path,"gbk");
        }
    
        /**
         * 读取txt文件
         * @param path
         * 文件路径
         * @param encoding
         * 文件编码
         * @return
         */
        public StringBuilder readTxt(String path,String encoding){
            return readTxt2(path,encoding);
        }
        private StringBuilder readTxt1(String path){
            //判断文件是否存在
            File file = new File(path);
            if (!file.exists()) {
                return null;
            }
            try {
                Reader reader = new FileReader(path);//Reader : 字符流
                BufferedReader br = new BufferedReader(reader);//BufferedReader : 缓冲输入流,效率高
                StringBuilder sb = new StringBuilder();//StringBuilder : 效率比String高,非线程安全,StringBuffer是线程安全的。
                //存在中文乱码问题
                String str;
                while ((str = br.readLine())!=null){
                    sb.append(str).append("
    ");
                }
                reader.close();
                br.close();
                return sb;
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
        private StringBuilder readTxt2(String path,String encoding){
            //判断文件是否存在
            File file = new File(path);
            if (!file.exists()) {
                return null;
            }
            try {
                InputStream is = new FileInputStream(path);//文件字节输入流
                InputStreamReader isr = new InputStreamReader(is,encoding);//InputStreamReader : 字符输入流,指定编码
                BufferedReader br = new BufferedReader(isr);//缓冲字符流
                StringBuilder sb = new StringBuilder();
                String str;
                while ((str = br.readLine())!=null){
                    sb.append(str).append("
    ");
                }
                br.close();
                isr.close();
                is.close();
                return sb;
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
        public void writeTxt(String text,String path){
            writeTxt(text,path,false,"gbk");
        }
        public void writeTxt(String text,String path,boolean append){
            writeTxt(text,path,append,"gbk");
        }
        public void writeTxt(String text,String path,boolean append, String encoding) {
            //判断文件是否存在
            File file = new File(path);
            if (!file.exists()) {
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            try {
                //以指定编码的方式写文件,并选择是否追加
                OutputStream os = new FileOutputStream(path, append);
                OutputStreamWriter osw = new OutputStreamWriter(os, encoding);
                BufferedWriter bw = new BufferedWriter(osw);
                bw.write(text);
                bw.newLine();
                bw.close();
                osw.close();
                os.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    Python如何爬取淘宝MM呢?教你一招
    Python爬虫实战之如何爬取百度贴吧帖子?案例详解
    SpringBoot定时任务如何正确运用?案例详解
    JS数组之重排序方法
    JS数组之栈和队列
    JS数组之转换方法
    计算机相关推荐教程
    多维数组
    重新认识变量和数组
    数组
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286717.html
Copyright © 2011-2022 走看看