Java应用-1-文件流的读和写

1. 目录、文件工具类

// 检查目录是否存在,不存在则创建
public boolean chkDirExists(String pathStr) {
    File path = new File(pathStr);
    if (path.exists()) {
        return true;
    } else {
        return file.mkdirs();
    }
}

// 检查文件是否存在,通过第二个参数决定是否删除原本文件再重新创建
public boolean chkFileExists(String filePath, boolean isNewFileType) {
    // 首先判断文件的目录是否存在
    if (!chkDirExists(filePath.substring(0, filePath.lastIndexOf(File.separator)))) {
        return false;
    }
    File file = new File(filePath);
    // 如果设置全新模式,则需要先删除
    if (isNewFileType && file.exists()) {
        if (!file.delete()) {
            return false;
        }
    }
    // 文件不存在创建文件
    if (!file.exists()) {
        try {
            return file.createNewFile();
        } catch (IOException e) {
            return false;
        }
    } else {
        return true;
    }
}

2. 场景 - 持续写入

String filePath = "C:\\test.txt";
File file = new File(filePath);
// 字符输出流
BufferedWriter fileWriter = null;
try {
    // 字节输出到文件末尾(追加信息)
    fileWriter = new BufferedWriter(new FileWriter(file, true));
    // 遍历追加
    fileWriter.write("xxyy" + System.getProperty("line.separator"));
    // 追加完毕后关闭流
    fileWriter.close();
} catch (IOException e) {
    throw new RuntimeException(e);
}

3. 场景 - 遍历读取文件中每一行数据

File file = new File("C:\\test.txt");
BufferedReader reader = null;
try {
    reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
    String line = null;
    while ((line = reader.readLine()) != null) {
        System.out.printf(line);
    }
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (reader != null) {
        try {
            reader.close();
        } catch (IOException e) {
            e.printStackTarce();
        }
    }
}
posted @ 2022-07-02 16:24  苍凉温暖  阅读(52)  评论(0编辑  收藏  举报