1、概述
一般而言,处理大批量的数据,一般倾向于使用python,即方便又省力,但有时候不得不使用Java来读取文件里的数据,再进行处理。所以以下就是我读取文件里的数据时写的代码。
2、方法一
2.1 我的思路(原生方法,可以直接用的)
(1)先传入文件在电脑里的路径(filePath)
(2)再读取文件里的内容到缓冲区里(InputStreamReader)
(3)然后逐行读取(每一行都是字符串,需要自己处理),并存储到List集合里。(bufferedReader.readLine())
(4)最后返回一个List集合
2.2 相关代码(上才艺)
public List<String> FileRead(String filePath) {
//定义ArrayList集合
List<String> list = new ArrayList<>();
try {
// 读取文件
File file = new File(filePath);
// 判断文件是否存在
if (file.isFile() && file.exists()) {
InputStreamReader reader = new InputStreamReader(Files.newInputStream(file.toPath()), StandardCharsets.UTF_8);
BufferedReader bufferedReader = new BufferedReader(reader);
try {
String str;
//循环判断是否文件扫描完
while ((str = bufferedReader.readLine()) != null) {
//将每一行添加到list集合里
list.add(str);
}
} catch (IOException e) {
e.printStackTrace();
}
bufferedReader.close();
reader.close();
} else {
System.out.println("找不到指定的文件");
}
} catch (IOException e) {
System.out.println("读取文件内容出错");
e.printStackTrace();
}
return list;
}
3、方法二
3.1 Hutool介绍
使用网上已有的API,方便省时又省力。
推荐网址: Hutool工具类库网址
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅。
3.2 相关代码
List<String> file = FileUtil.readLines(filePath, StandardCharsets.UTF_8);
filePath:电脑里文件的路径
使用:传入filePath就可以了,然后返回一个集合
我个人推荐使用方法二,但如果对代码十分热爱,同时对自己写的代码有信心的话,可以自己写,或采用方法一,还是很有成就感的。