Java学习-013-文本文件读取实例源代码(两种数据返回格式)

此文源码主要为应用 Java 读取文本文件内容实例的源代码。若有不足之处,敬请大神指正,不胜感激!

1.读取的文本文件内容以一维数组【LinkedList<String>】的形式返回,源代码如下所示:

 1     /**
 2      * @function 文本文件操作:读取数据
 3      *
 4      * @author Aaron.ffp
 5      * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java txtRead, 2015-2-2 21:03:46 Exp $
 6      *
 7      * @param filename     :文本文件全路径
 8      * @param encodingType :文本文件编码
 9      *
10      * @return LinkedList<String> 文本文件内容
11      */
12     public LinkedList<String> txtRead(String filename, String encodingType){
13         LinkedList<String> fileContent = new LinkedList<String>();
14
15         try{
16             File f = new File(filename);
17
18             if(f.isFile() && f.exists()){
19                 InputStreamReader read = new InputStreamReader(new FileInputStream(f), encodingType);
20                 BufferedReader br = new BufferedReader(read);
21
22                 String rowContent;
23
24                 while((rowContent = br.readLine()) != null){
25                     fileContent.add(rowContent);
26                 }
27
28                 if(br != null){
29                     br.close();
30                 }
31
32                 if(read != null){
33                     read.close();
34                 }
35             }else{
36                 this.message = "{" + filename + "}为目录或者文件不存在,或文件正在被占用!";
37                 this.logger.error(this.message);
38             }
39         }catch(Exception ioe){
40             this.message = "读取文件 {" + filename + "}内容出错。" + ioe.getMessage();
41             this.logger.error(this.message);
42         }
43
44         return fileContent;
45     }

读取文本文件内容,返回数据格式:LinkedList<String>

测试:返回一维数组,源代码如下所示:

 1     /**
 2      * 测试:FileUtils.txtRead(String, String)
 3      *
 4      * @author Aaron.ffp
 5      * @version V1.0.0: autoUISelenium test.java.aaron.java.tools FileUtilsTest.java txtRead, 2015-2-2 22:07:14 Exp $
 6      *
 7      */
 8     @Test
 9     public void txtRead_row() {
10         this.fu = new FileUtils();
11         this.message = "\n\n\n测试:FileUtils.txtRead(String, String)";
12         this.logger.debug(this.message);
13
14         try{
15             this.filename = this.constantslist.PARAFILEPATH.get("TEST") + "source-txtRead.txt";
16             this.message = "测试文本文件源为:" + this.filename;
17             this.logger.debug(this.message);
18
19             LinkedList<String> contentlist = this.fu.txtRead(this.filename, "GB2312");
20             String fileContent = "";   // 文件内容
21
22             if(contentlist.size() > 0){
23                 for(int rowsCount = 1; rowsCount <= contentlist.size()/1000 + 1; rowsCount++){
24                     for(int i = 0; i < contentlist.size(); i++){
25                         fileContent = contentlist.get(i);
26
27                         this.logger.debug(fileContent);
28
29                         if (i == 5) {
30                             return;
31                         }
32                     }
33                 }
34             }
35         }catch(Exception ioe){
36             ioe.printStackTrace();
37             this.message = ioe.getMessage();
38             this.logger.error(this.message);
39         }
40     }

测试源代码:

2.读取的文本文件内容以二维数据【LinkedList<String[]>】的形式返回(删除了数据左右空格),源代码如下所示:

 1     /**
 2      * @function 文本文件操作:读取数据
 3      *
 4      * @author Aaron.ffp
 5      * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java txtRead, 2015-2-2 21:03:46 Exp $
 6      *
 7      * @param filename     :文本文件全路径
 8      * @param encodingType :文本文件编码
 9      * @param split        : 行分隔符
10      *
11      * @return LinkedList<String[]> 文本文件内容
12      */
13     public LinkedList<String[]> txtRead(String filename, String encodingType, String split){
14         LinkedList<String[]> fileContent = new LinkedList<String[]>();
15
16         try{
17             File f = new File(filename);
18
19             if(f.isFile() && f.exists()){
20                 InputStreamReader read = new InputStreamReader(new FileInputStream(f), encodingType);
21                 BufferedReader br = new BufferedReader(read);
22
23                 String rowContent;
24
25                 while((rowContent = br.readLine()) != null){
26                     String[] content = rowContent.split(split);
27                     String[] rowdata = new String[content.length];
28
29                     for (int i = 0; i < content.length; i++) {
30                         rowdata[i] = content[i].toString().trim();
31                     }
32
33                     fileContent.add(rowdata);
34                 }
35
36                 if(br != null){
37                     br.close();
38                 }
39
40                 if(read != null){
41                     read.close();
42                 }
43             }else{
44                 this.message = "{" + filename + "}为目录或者文件不存在,或文件正在被占用!";
45                 this.logger.error(this.message);
46             }
47         }catch(Exception ioe){
48             this.message = "读取文件 {" + filename + "}内容出错。" + ioe.getMessage();
49             this.logger.error(this.message);
50         }
51
52         return fileContent;
53     }

读取文本文件内容,返回数据格式:LinkedList<String[]>

测试:返回二维数组,源代码如下所示:

 1     /**
 2      * 测试:FileUtils.txtRead(String, String, String)
 3      *
 4      * @author Aaron.ffp
 5      * @version V1.0.0: autoUISelenium test.java.aaron.java.tools FileUtilsTest.java txtRead, 2015-2-2 22:17:14 Exp $
 6      *
 7      */
 8     @Test
 9     public void txtRead_rowcontent() {
10         this.fu = new FileUtils();
11         this.message = "\n\n\n测试:FileUtils.txtRead(String, String, String)";
12         this.logger.debug(this.message);
13
14         try{
15             this.filename = this.constantslist.PARAFILEPATH.get("TEST") + "source-txtRead.txt";
16             this.message = "测试文本文件源为:" + this.filename;
17             this.logger.debug(this.message);
18
19             LinkedList<String[]> fdata = this.fu.txtRead(this.filename, "GB2312", "\\|");
20
21             if(fdata.size() > 0){
22                 for(int rowsCount = 1; rowsCount <= 5; rowsCount++){
23                     String[] arr_row = fdata.get(rowsCount);
24                     String rowdata = "";
25
26                     for (int i = 0; i < arr_row.length; i++) {
27                         rowdata += arr_row[i] + "\t";
28                     }
29
30                     this.logger.debug(rowdata);
31                 }
32             }
33         }catch(Exception ioe){
34             ioe.printStackTrace();
35             this.message = ioe.getMessage();
36             this.logger.error(this.message);
37         }
38     }

测试源代码:

3.文本文件内容如下所示:

 1     01|20130131| |      |        48104|       |       | | |
 2 READ00|长安|1|000001|  18653471415|  11240|  10000|1|1|1
 3 READ04|哈佛|1|000001|   1150000000|   7650|  10000|1|1|1
 4 READ05|武钢|1|000001|  10093779823|   2990|  10000|1|1|1
 5 READ06|东风|1|000001|   2000000000|   3250|  10000|1|1|1
 6 READ07|现代|1|000001|   1007282534|  11540|  10000|1|1|1
 7 READ08|本田|1|000001|   2200000000|   4500|  10000|1|1|1
 8 READ09|猎豹|1|000001|   1926958448|  13210|  10000|1|1|1
 9 READ10|陆风|1|000001|   6423643659|   5250|  10000|1|1|1
10 READ11|东风|1|000001|  10500000000|   6380|  10000|1|1|1
11 READ12|华晨|1|000001|   1165READ00|   4200|  10000|1|1|1
12 READ15|昨天|1|000001|   6849725776|  11540|  10000|1|1|1
13 READ16|今天|1|000001|  22587602387|  10360|  10000|1|1|1
14 READ17|山东|1|000001|   3075653888|   2950|  10000|1|1|1
15 READ18|上海|1|000001|  22755179650|   2990|  10000|1|1|1
16 READ19|北京|1|000001|  17122048088|   5030|  10000|1|1|1
17 READ20|天津|1|000001|   2247371832|   2520|  10000|1|1|1
18 READ21|南京|1|000001|   2139739257|   4720|  10000|1|1|1
19 READ22|江苏|1|000001|   6436295797|   2250|  10000|1|1|1
20 READ26|河北|1|000001|   2108552613|   4770|  10000|1|1|1
21 READ27|海南|1|000001|   5940056200|   3820|  10000|1|1|1
22 READ28|丽江|1|000001|  70039798886|   7110|  10000|1|1|1
23 READ29|天界|1|000001|   7022650000|   4130|  10000|1|1|1

文本文件内容:

脚本运行结果:

至此, Java学习-013-文本文件读取实例源代码(两种数据返回格式) 顺利完结,希望此文能够给初学 Java 的您一份参考。

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

时间: 2024-08-08 15:04:55

Java学习-013-文本文件读取实例源代码(两种数据返回格式)的相关文章

Java学习-019-Properties 文件读取实例源代码

在这几天的学习过程中,有开发的朋友告知我,每个编程语言基本都有相应的配置文件支持类,像 Python 编程语言中支持的 ini 文件及其对应的配置文件读取类 ConfigParse,通过这个类,用户可以方便的修改 ini 配置文件.在 Java 中对应的配置文件为 properties 格式的文本文件,其对应的内容格式为 “键=值” ,文本注释信息可以用 “#” 注释.同时 Java 语言中对应的类为 Properties(java.util.Properties),即为读取 propertie

Java学习-017-EXCEL 文件读取实例源代码

众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 Sheet 页中的数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感激! 不多言,小二上码咯... 通过 sheet_index 读取 EXCEL 数据源代码如下所示,敬请参阅! 1 /** 2 * @function 文件读取: EXCEL文件 3 * @description 通过EXCE

Java学习-018-EXCEL 文件写入实例源代码

众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 Sheet 页中的数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感激! 不多言,小二上码咯... 通过 sheet_name 写入 EXCEL 数据源代码如下所示,敬请参阅! 1 /** 2 * @function 文件写入: EXCEL文件 3 * 4 * @author Aaron.ff

Java学习-012-文件删除实例及源代码

此文源码主要为应用 Java 创建文件的源代码.若有不足之处,敬请大神指正,不胜感激! 文件删除源代码如下: 1 /** 2 * @function 文件操作:删除文件.若文件存在且未被占用,则删除文件:若文件存在且被占用,则记录文件占用信息:若文件不存在,则对应记录日志信息 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java deleteF

Java学习-011-创建文件实例及源代码

此文源码主要为应用 Java 创建文件的源代码.若有不足之处,敬请大神指正,不胜感激! 创建文件的源代码如下所示: 1 /** 2 * @function 文件操作:创建文件.若文件不存在,则直接创建文件:若文件存在且未被占用,则删除文件,并重新创建文件 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java createFile, 2015-2

Java学习-010-创建文件夹源代码

此文源码主要为应用 Java 创建文件目录的源码.若有不足之处,敬请大神指正,不胜感激! 创建文件夹源代码如下所示: 1 /** 2 * @function 文件操作:创建文件夹.若文件夹不存在,则级联创建文件夹:若存在则不创建. 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java createPath, 2015-2-2 21:03:31

简介C#读取XML的两种方式

简介C#读取XML的两种方式 作者: 字体:[增加 减小] 类型:转载 时间:2013-03-03 在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使用DOM的好处在于它允许编辑和更新XML文档,可以随机访问文档中的数据,可以使用XPath查询 XML作用 对于XML,想必各位都比较了解,我也就不用费笔墨来描述它是什么了,我想在未来的Web开发中XML一定会大放异彩,XML是可扩展标记语言,使用它企 业可以制定一套自己的数据格式.用于Internet的数据

将引用了第三方jar包的Java项目打包成jar文件的两种方法

方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下: Manifest-Version: 1.0 Class-Path: lib/commons-codec.jar lib/commons-httpclient-3.1.jar lib/commons-logging-1.1.jar lib/log4j-1.

为什么Java中实现多线程的方式有两种?

在面试的过程中,我们经常问被面试者,为什么Java中实现多线程的方式有两种(一种是直接继承Thread类,一种是实现Runnable接口)?可惜的是,很多面试者都答不出来,甚至从来没有想为什么.,那么真正的原因是什么呢?我们可以用反证法推理一下: 假设Java只提供Thread供大家继承从而实现多线程,考虑下面的一个需求,如果有一个已经继承了某个父类的类,但是这个类又想实现多线程,怎么办?很显然,如果只提供一个可以继承的类,肯定解决不了这个问题.那么,如何解决,毫无疑问,就只能使用接口了.