• 【深入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();
            }
        }
    }
  • 相关阅读:
    jacascript 数组
    jacascript 基础数据类型(一)
    JS checkbox 全选 全不选
    sql 循环处理表数据中当前行和上一行中某值相+/-
    C# 围棋盘的画法
    C 中读取键盘码
    C# string.format、string.connect和+=运算 效率计算
    Sqlserver 中exists 和 in
    urldecode解码方法
    SQL server 临时表
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286717.html
Copyright © 2020-2023  润新知