Java学习-014-文本文件写入实例源代码(两种写入方式)

此文源码主要为应用 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 的您一份参考。

最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

 

posted @ 2015-03-14 13:05  范丰平  Views(435)  Comments(0Edit  收藏  举报