Java 读取 txt 文件内容到容器 List
方法一:
一、桌面上准备 DataObject.txt 文件,内容为:

二、打开 Eclipse,编写代码如下:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import javax.swing.filechooser.FileSystemView; public class test003 {
public static void main(String[] args) {
FileSystemView fsv = FileSystemView.getFileSystemView();
File com = fsv.getHomeDirectory();
String deskPath = com.getPath();
String filePath = deskPath + "\\" + "DataObject.txt"; List<String> list = new ArrayList<String>();
try {
list = getFileContext( filePath );
for( int i = 0; i < list.size(); i++ ) {
String lineStr = list.get(i);
System.out.println( "lineStr = " + lineStr );
}
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 获取txt文件内容, 并按行放入list中
*/
public static List<String> getFileContext( String path ) {
FileReader fileReader = null;
BufferedReader bufferedReader = null;
List<String> list = new ArrayList<String>();
String str = "";
try {
fileReader = new FileReader( path );
bufferedReader = new BufferedReader( fileReader );
while( (str = bufferedReader.readLine()) != null ) {
if( str.trim().length() > 2 ) {
list.add( str );
}
}
} catch ( Exception e ) {
e.printStackTrace();
} finally {
try {
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (Exception e2) {
e2.printStackTrace();
} try {
if (fileReader != null) {
fileReader.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return list;
}
}
三、执行结果为:

方法二:
一、桌面上准备 DataObject.txt 文件,内容为:

二、打开 Eclipse,编写代码如下:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import javax.swing.filechooser.FileSystemView; public class test003 {
public static void main(String[] args) {
FileSystemView fsv = FileSystemView.getFileSystemView();
File com = fsv.getHomeDirectory();
String deskPath = com.getPath();
String filePath = deskPath + "\\" + "DataObject.txt"; List<String> list = new ArrayList<String>();
try {
list = readFileToList( filePath );
for( int i = 0; i < list.size(); i++ ) {
String lineStr = list.get(i);
System.out.println( "lineStr = " + lineStr );
}
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 读取文件内容到容器List
* @param fileName 文件名称
*/
public static List<String> readFileToList( String fileName ) {
List<String> list = new ArrayList<String>();
BufferedReader br = null;
try {
String line = null;
br = new BufferedReader( new UnicodeReader( new FileInputStream(fileName), Charset.defaultCharset().name()) );
while ( (line = br.readLine()) != null ) {
list.add(line);
}
} catch ( IOException e ) {
e.printStackTrace();
} finally {
try {
if (null != br) {
br.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
} return list;
}
}
UnicodeReader 类:
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PushbackInputStream;
import java.io.Reader; public class UnicodeReader extends Reader {
PushbackInputStream internalIn;
InputStreamReader internalIn2 = null;
String defaultEnc; private static final int BOM_SIZE = 4; public UnicodeReader(InputStream in, String defaultEnc) {
internalIn = new PushbackInputStream(in, BOM_SIZE);
this.defaultEnc = defaultEnc;
} public String getDefaultEncoding() {
return defaultEnc;
} public String getEncoding() {
if (internalIn2 == null) return null;
return internalIn2.getEncoding();
} protected void init() throws IOException {
if (internalIn2 != null) return; String encoding;
byte bom[] = new byte[BOM_SIZE];
int n, unread;
n = internalIn.read(bom, 0, bom.length); if ( (bom[0] == (byte)0x00) && (bom[1] == (byte)0x00) &&
(bom[2] == (byte)0xFE) && (bom[3] == (byte)0xFF) ) {
encoding = "UTF-32BE";
unread = n - 4;
} else if ( (bom[0] == (byte)0xFF) && (bom[1] == (byte)0xFE) &&
(bom[2] == (byte)0x00) && (bom[3] == (byte)0x00) ) {
encoding = "UTF-32LE";
unread = n - 4;
} else if ( (bom[0] == (byte)0xEF) && (bom[1] == (byte)0xBB) &&
(bom[2] == (byte)0xBF) ) {
encoding = "UTF-8";
unread = n - 3;
} else if ( (bom[0] == (byte)0xFE) && (bom[1] == (byte)0xFF) ) {
encoding = "UTF-16BE";
unread = n - 2;
} else if ( (bom[0] == (byte)0xFF) && (bom[1] == (byte)0xFE) ) {
encoding = "UTF-16LE";
unread = n - 2;
} else {
encoding = defaultEnc;
unread = n;
} if (unread > 0) internalIn.unread(bom, (n - unread), unread); if (encoding == null) {
internalIn2 = new InputStreamReader(internalIn);
} else {
internalIn2 = new InputStreamReader(internalIn, encoding);
}
} public void close() throws IOException {
init();
internalIn2.close();
} public int read(char[] cbuf, int off, int len) throws IOException {
init();
return internalIn2.read(cbuf, off, len);
}
}
三、执行结果为:

Java 读取 txt 文件内容到容器 List的更多相关文章
- java读取txt文件内容
package read; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public ...
- JAVA 读取txt文件内容
原文地址https://www.cnblogs.com/xing901022/p/3933417.html 通常,我们可以直接通过文件流来读取txt文件的内容,但有时可能会出现乱码!此时只要设置一下文 ...
- java 读取TXT文件的方法
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- java读取TXT文件的方法
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- Java读取txt文件信息并操作。
一.java读取txt文件内容 import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.Fi ...
- JAVA获取txt文件内容
JAVA 读取txt文件内容 通常,我们可以直接通过文件流来读取txt文件的内容,但有时可能会出现乱码!此时只要设置一下文件字符编码即可. public class txttest { /** * 读 ...
- java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去
#java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回: ...
- Java读取txt文件
package com.loongtao.general.crawler.slave.utils; import java.io.BufferedReader; import java.io.File ...
- Java读取txt文件、excel文件的方法
Java读取txt文件.excel文件的方法 1.读取txt文件 public static String getFileContent(String filePath,String charset) ...
随机推荐
- vue中methods一个方法调用另外一个方法
转自http://blog.csdn.net/zhangjing1019/article/details/77942923 vue在同一个组件内: methods中的一个方法调用methods中的另外 ...
- noip飞扬的小鸟
题解: 挺简单的题目 f[i][j]表示x坐标为i,y坐标为j的最小值 会发现那个东西是个完全背包 从f[i][j-a[i]]转移一下就是O(1)转移的了 另外上界为m这个要特判一下 我把sum[a[ ...
- DirectoryEntry配置IIS7出现ADSI Error:未知错误(0x80005000)
一.错误情况 环境:win7+iis7.0 DirectoryEntry配置IIS7出现如下错误 或者是 下面一段代码在IIS6.0下运转正常,但IIS7.0下运转会出错: System.Direct ...
- 牛客挑战赛30 小G砍树 树形dp
小G砍树 dfs两次, dp出每个点作为最后一个点的方案数. #include<bits/stdc++.h> #define LL long long #define fi first # ...
- 关系网络数据可视化:2. Python数据预处理
将数据中导演与演员的关系整理出来,得到导演与演员的关系数据,并统计合作次数 import numpy as np import pandas as pd import matplotlib.pyplo ...
- 041 SparkSql的回顾与复习
在前面学完了SparkCore后,又学了SparkSQL,在继续加深学习之前,一定的复习还是很重要的.这里大体写一下,加深自己对SparlSQL的理解. 1.SparkSQL 首先是SaprkSQL与 ...
- Linux git 在自己的服务器上建立 git 仓库(repository)
Linux git 在自己的服务器上建立 git 仓库(repository) 服务器端: 在这里使用 ssh 方式登陆: ssh [username]@server_address(建议用超级用户登 ...
- Java中System类的相关应用
1.Runtime: public class RuntimeDemo { public static void main(String[] args) { Runtime runtime=Runti ...
- Full Tank? POJ - 3635 (bfs | 最短路)
After going through the receipts from your car trip through Europe this summer, you realised that th ...
- POJ 1321-棋盘问题【DFS+递归】
题目链接 题目大意: Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大 ...