今天我们简单实现一下,文件的输入输出。本次使用的是BufferedReader和BufferedWriter来实现。也是我在项目中使用到的,接下来分享给大家。
1.文件读取
public void readCSVFile() {
// 获取文件
File file = new File("C://Users/asus/Desktop/test2020-09-06.csv");
String tempStr = "";
// 封装文件内容的List
List<String[]> tempStrArryList = new ArrayList<>();
// 使用了java7的try-catch-with,可以不用手动关闭流
try (BufferedReader read = new BufferedReader(new FileReader(file))) {
// 将文件中每一行的文字赋值给临时变量tempStr
while ((tempStr = read.readLine()) != null) {
// 这里以csv文件为例子,去除csv文件读入时的双引号,并将数据以逗号进行分割,封装成数组
String[] tmpStrArray = tempStr.replace("\"", "").split(",", -1);
// 每一行数据封装的数组保存在List中
tempStrArryList.add(tmpStrArray);
}
} catch (IOException e) {
e.printStackTrace();
}
}
2.文件写入
public void exportCsvFile() {
// 定义文件生成的路径
File file = new File("C://Users/asus/Desktop/test"
+ DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDateTime.now()) + ".csv");
StringBuilder sb = new StringBuilder();
try (BufferedWriter write = new BufferedWriter
(new OutputStreamWriter(new FileOutputStream(file), "UTF-8"))) {
// 这里正常会是一个实体类型的List,这里为了测试数据量而临时制作
for (int i = 0, j = 500000; i <= 500000; i++, j--) {
sb.delete(0, sb.length());
sb.append("\"").append(i + "" + j).append("\"").append(",").append("\n");
// 将内容写入文件中
write.append(sb.toString());
}
} catch (IOException e) {
e.printStackTrace();
}
}