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();
}
}
}