今天我们简单实现一下,文件的输入输出。本次使用的是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();
    }
}