【深入Java基础】Java IO 使用
2018-03-19 17:42
417 查看
一个常用的读取和写入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("\r\n"); } 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("\r\n"); } 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(); } } }
相关文章推荐
- java基础:final关键字的深入使用
- JAVA基础:使用缓冲IO提高Java程序性能
- [学习笔记]Java基础_IO(包含对象流序列化使用和RandomAccessFile 类的使用)
- Java基础—IO小结(二)缓冲流与其它流的使用
- java基础教程之IO使用二
- 深入分析 Java I/O (七)IO模型一基础知识
- JAVA基础--IO输入输出(File使用)17
- java基础教程之IO使用一
- java基础:final关键字的深入使用
- JAVA基础初探(十三)IO简介、字节流与字符流区别、带缓冲的字节/字符流读取数据、FileReader/FileWriter便捷类、Apache IO库使用说明
- java数字图像处理基础使用imageio写图像文件示例(转载)
- JAVA IO (一) 基础深入理解
- java数字图像处理基础使用imageio写图像文件示例
- 使用java.io.*操作文件的拆分与合并,Application一例!
- JAVA.IO使用笔记
- Java基础视频笔记(七):IO操作
- Java IO学习基础之读写文本文件
- Java基础问题:汉字问题深入谈
- Java网络编程基础 ServerSocket类使用
- 使用技巧:Java程序用缓冲IO来提高性能