此文源码主要为应用 Java 读取文本文件内容实例的源代码。若有不足之处,敬请大神指正,不胜感激!
第一种:文本文件写入,若文件存在则删除原文件,并重新创建文件。源代码如下所示:
1 /** 2 * @function 文本文件操作:写入数据 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java txtWrite, 2015-2-2 21:03:53 Exp $ 6 * 7 * @param filename :文本文件全路径 8 * @param encoding :编码格式 9 * @param fileContent :写入内容 10 * 11 * @return boolean 写入成功返回true 12 * 13 * @throws IOException 14 */ 15 public boolean txtWrite(String filename, String encoding, String fileContent){ 16 // 先读取源文件内容, 再进行写入操作 17 boolean flag = false; 18 19 FileInputStream fis = null; 20 InputStreamReader isr = null; 21 BufferedReader br = null; 22 FileOutputStream fos = null; 23 PrintWriter pw = null; 24 25 /* 创建文件(删除旧文件) */ 26 if (!this.createFile(filename)) { 27 return flag; 28 } 29 30 try{ 31 File file = new File(filename); // 文件路径 32 33 if(file.isFile()){ 34 // 将文件读入输入流 35 fis = new FileInputStream(file); 36 isr = new InputStreamReader(fis); 37 br = new BufferedReader(isr); 38 39 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(file), encoding); 40 BufferedWriter bw = new BufferedWriter(osw); 41 bw.write(fileContent); 42 bw.close(); 43 44 flag = true; 45 }else{ 46 this.message = "文件全路径非法。当前文件全路径为:" + filename; 47 this.logger.warn(this.message); 48 } 49 }catch(Exception ioe){ 50 this.message = "写文件{" + filename + "}内容出错。" + ioe.getMessage(); 51 this.logger.error(this.message); 52 }finally{ 53 try { 54 if(pw != null){ 55 pw.close(); 56 } 57 if(fos != null){ 58 fos.close(); 59 } 60 if(br != null){ 61 br.close(); 62 } 63 if(fis != null){ 64 fis.close(); 65 } 66 } catch (Exception e) { 67 this.message = e.getMessage(); 68 this.logger.error(this.message); 69 } 70 } 71 72 return flag; 73 }
文本文件覆盖写入源代码
测试源码如下所示:
1 /** 2 * 测试:创建文件-FileUtils.textWrite(String, String, String) 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium test.java.aaron.java.tools FileUtilsTest.java test_txtWrite, 2015-2-2 22:09:51 Exp $ 6 */ 7 @Test 8 public void test_txtWrite() { 9 this.message = "\n\n\n测试:FileUtils.textWrite(String, String, String)"; 10 this.logger.debug(this.message); 11 12 try{ 13 this.fu = new FileUtils(); 14 this.txtfileWrite = this.constantslist.PARAFILEPATH.get("OUT") + "txtfileWrite.txt"; // 文件名 15 this.message = "写入文件路径为:" + this.txtfileWrite; 16 17 this.fu.createFile(this.txtfileWrite); 18 19 for(int i = 0; i < 10; i++){ 20 this.fu.txtWrite(this.txtfileWrite, "UTF-8", "显示追加的信息:" + i); 21 } 22 23 LinkedList<String> contentlist = this.fu.txtRead(this.txtfileWrite, "UTF-8"); 24 25 if(contentlist.size() > 0){ 26 for(int i = 0; i < contentlist.size(); i++){ 27 this.logger.debug(contentlist.get(i)); 28 } 29 } 30 }catch(Exception ioe){ 31 this.message = ioe.getMessage(); 32 this.logger.error(this.message); 33 } 34 }
测试:文本文件覆盖写入
第二种:文本文件写入,依据用户的提示指令是否删除已存在的原文件。若删除原文件,则同第一种;若不删除原文件,则在原文件末尾追加内容。源代码如下所示:
1 /** 2 * @function 文本文件操作:写入数据 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java txtWrite, 2015-2-2 21:10:53 Exp $ 6 * 7 * @param filename :文本文件全路径 8 * @param delete : 是否删除旧文件 9 * @param encoding :编码格式 10 * @param fileContent :写入内容 11 * 12 * @return boolean 写入成功返回true 13 * 14 * @throws IOException 15 */ 16 public boolean txtWrite(String filename, boolean delete, String encoding, String fileContent){ 17 // 先读取源文件内容, 再进行写入操作 18 boolean flag = false; 19 String temp = ""; 20 String filecontent = ""; 21 22 FileInputStream fis = null; 23 InputStreamReader isr = null; 24 BufferedReader br = null; 25 FileOutputStream fos = null; 26 PrintWriter pw = null; 27 28 /* 文件创建:若删除源文件,则为覆盖写入;若不删除原文件,则为追加写入 */ 29 if (!this.createFile(filename, delete)) { 30 return flag; 31 } 32 33 try{ 34 File file = new File(filename); // 文件路径 35 36 if(file.isFile()){ 37 // 将文件读入输入流 38 fis = new FileInputStream(file); 39 isr = new InputStreamReader(fis); 40 br = new BufferedReader(isr); 41 42 // 获取文件原有的内容 43 for(; (temp = br.readLine()) != null;){ 44 filecontent += temp + this.constantslist.LINESEPARATOR; 45 } 46 47 fileContent = filecontent + fileContent; 48 49 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(file), encoding); 50 BufferedWriter bw = new BufferedWriter(osw); 51 bw.write(fileContent); 52 bw.close(); 53 54 flag = true; 55 }else{ 56 this.message = "文件全路径非法。当前文件全路径为:" + filename; 57 this.logger.warn(this.message); 58 } 59 }catch(Exception ioe){ 60 this.message = "写文件{" + filename + "}内容出错。" + ioe.getMessage(); 61 this.logger.error(this.message); 62 }finally{ 63 try { 64 if(pw != null){ 65 pw.close(); 66 } 67 if(fos != null){ 68 fos.close(); 69 } 70 if(br != null){ 71 br.close(); 72 } 73 if(fis != null){ 74 fis.close(); 75 } 76 } catch (Exception e) { 77 this.message = e.getMessage(); 78 this.logger.error(this.message); 79 } 80 } 81 82 return flag; 83 }
文本文件写入源代码:
测试源码如下所示:
1 /** 2 * 测试:FileUtils.textWrite(String, boolean, String, String) 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium test.java.aaron.java.tools FileUtilsTest.java test_txtWriteAppend, 2015-2-2 22:19:51 Exp $ 6 */ 7 @Test 8 public void test_txtWriteAppend() { 9 this.message = "\n\n\n测试:FileUtils.textWrite(String, boolean, String, String)"; 10 this.logger.debug(this.message); 11 12 try{ 13 this.fu = new FileUtils(); 14 this.txtfileWrite = this.constantslist.PARAFILEPATH.get("OUT") + "txtfileWrite-append.txt"; // 文件名 15 this.message = "写入文件路径为:" + this.txtfileWrite; 16 17 this.fu.createFile(this.txtfileWrite, false); 18 19 for(int i = 0; i < 10; i++){ 20 this.fu.txtWrite(this.txtfileWrite, false, "UTF-8", "显示追加的信息:" + i); 21 } 22 23 LinkedList<String> contentlist = this.fu.txtRead(this.txtfileWrite, "UTF-8"); 24 25 if(contentlist.size() > 0){ 26 for(int i = 0; i < contentlist.size(); i++){ 27 this.logger.debug(contentlist.get(i)); 28 } 29 } 30 }catch(Exception ioe){ 31 this.message = ioe.getMessage(); 32 this.logger.error(this.message); 33 } 34 }
测试:文本文件写入
至此, Java学习-014-文本文件写入实例源代码(两种写入方式) 顺利完结,希望此文能够给初学 Java 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
时间: 2024-10-09 21:07:48