java读取和写入txt的常见方法
1 package com.zlb.io; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileOutputStream; 8 import java.io.FileWriter; 9 import java.io.IOException; 10 import java.io.InputStreamReader; 11 import java.io.OutputStreamWriter; 12 import java.io.RandomAccessFile; 13 14 public class ReadFileTest { 15 16 /** 17 * 读取文件 18 * @param filePath 19 */ 20 public void readFileByBuffered(String filePath) { 21 22 File file = new File(filePath); 23 //判断文件是否存在 24 if (file.isFile() && file.exists()) { 25 try { 26 InputStreamReader reader = null; 27 reader = new InputStreamReader(new FileInputStream(file), "utf-8"); 28 BufferedReader bufferedReader = new BufferedReader(reader); 29 String lineContent = null; 30 while ((lineContent = bufferedReader.readLine()) != null) { 31 System.out.println(lineContent); 32 } 33 bufferedReader.close(); 34 reader.close(); 35 } catch (Exception e) { 36 System.out.println("==读取文件出错," + e); 37 } finally { 38 System.out.println("==文件读取完毕=="); 39 } 40 } else { 41 System.out.println("==文件不存在=="); 42 createFile(file); 43 appendByBufferedWriter(file, "文件不存在,创建并写入appendByBufferedWriter"); 44 appendByRandomAccess(filePath, "文件不存在,创建并写入appendByRandomAccess"); 45 appendByFileWriter(filePath, "文件不存在,创建并写入appendByFileWriter"); 46 } 47 } 48 49 /** 50 * 写入文件1 51 * @param file 52 * @param content 53 */ 54 public static void appendByBufferedWriter(File file, String content) { 55 56 try { 57 OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file, true)); 58 BufferedWriter bufferedWriter = new BufferedWriter(writer); 59 bufferedWriter.write(content + "\r\n"); 60 bufferedWriter.close(); 61 } catch (Exception e) { 62 System.out.println("==写入文件异常==" + e); 63 } 64 } 65 66 /** 67 * 写入文件2 68 * @param fileName 69 * @param content 70 */ 71 public static void appendByRandomAccess(String fileName, String content) { 72 try { 73 RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); 74 long fileLenth = randomFile.length(); 75 randomFile.seek(fileLenth); 76 //解决存入乱码问题 77 randomFile.writeBytes(new String(content.getBytes("gbk"), "iso8859_1") + "\r\n"); 78 randomFile.close(); 79 } catch (Exception e) { 80 System.out.println("==写入文件异常==" + e); 81 } 82 } 83 84 /** 85 * 写入文件3 86 * @param fileName 87 * @param content 88 */ 89 public static void appendByFileWriter(String fileName, String content) { 90 try { 91 FileWriter fileWriter = new FileWriter(fileName, true); 92 fileWriter.write(content + "\r\n"); 93 fileWriter.close(); 94 } catch (IOException e) { 95 System.out.println("==写入文件异常==" + e); 96 } 97 98 } 99 100 /** 101 * 创建文件和文件夹 102 * @param file 103 */ 104 public void createFile(File file) { 105 System.out.println("==创建父文件夹=="); 106 file.getParentFile().mkdirs(); 107 try { 108 System.out.println("==创建文件=="); 109 file.createNewFile(); 110 } catch (IOException e) { 111 e.printStackTrace(); 112 } 113 } 114 115 public static void main(String[] args) { 116 117 String filePath = "d:\\Users\\lbzhao\\test\\Tools3.txt"; 118 119 ReadFileTest file = new ReadFileTest(); 120 file.readFileByBuffered(filePath); 121 } 122 123 }
以上是读写txt的主要方法,大概罗列下,经测试没有主要问题!

浙公网安备 33010602011771号