import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.LinkedList;
import java.util.List;
/**
* @Auther: liyue
* @Date: 2019/4/12 19:44
* @Description: 文件工具类
*/
public class FileUtil {
/**
* 快速写入
*
* @param filePath
* @param content
*/
public static void write(String filePath, List<String> content) {
fileNotExistsCreate(filePath);
try (FileOutputStream outputStream = new FileOutputStream(new File(filePath), Boolean.FALSE);
BufferedWriter bufferWriter = new BufferedWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8))) {
for (int i = 0; i < content.size(); i++) {
bufferWriter.write(content.get(i) + "\n");
if (i % 500 == 0) {
bufferWriter.flush();
}
}
bufferWriter.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 写入文件
*
* @param filePath
* @param content
*/
public static void write(String filePath, String content) {
fileNotExistsCreate(filePath);
try (FileOutputStream outputStream = new FileOutputStream(new File(filePath), Boolean.FALSE);
BufferedWriter bufferWriter = new BufferedWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8))) {
bufferWriter.write(content + "\n");
bufferWriter.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 文件不存在则创建
*
* @param path
*/
private static void fileNotExistsCreate(String path) {
try {
File file = new File(path);
if (!file.exists()) {
File parentDir = new File(file.getParent());
if (!parentDir.exists()) {
parentDir.mkdirs();
}
file.createNewFile();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 字符流写入文件
*
* @param content
* @param path
*/
public static void writeString(String content, String path) {
try {
File file = new File(path);
if (!file.exists()) {
file.createNewFile();
}
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(file), "GBK");
BufferedWriter bw = new BufferedWriter(outputStreamWriter);
bw.write(content);
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 字符流追加写入文件
*
* @param conent
* @param path
*/
public static void writeStringAppend(String conent, String path) {
BufferedWriter out = null;
try {
File file = new File(path);
if (!file.exists()) {
file.createNewFile();
}
out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(path, true)));
out.write(conent + "\n");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 按行读取
*
* @param path
* @return List<String>
*/
public static List<String> readByLine(String path) {
List<String> list = new LinkedList<>();
File file = new File(path);
BufferedReader reader = null;
String temp = null;
try {
reader = new BufferedReader(new FileReader(file));
while ((temp = reader.readLine()) != null) {
list.add(temp);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return list;
}
/**
* 按行读取
*
* @param path
* @return
*/
public static String readByLineToStr(String path) {
File file = new File(path);
BufferedReader reader = null;
String temp = null;
StringBuilder sb = new StringBuilder();
try {
reader = new BufferedReader(new FileReader(file));
while ((temp = reader.readLine()) != null) {
sb.append(temp).append("\n");
}
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (reader != null) {
try {
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return sb.toString();
}
}
IO(0) : 合集
于 2022-03-30 15:06:26 首次发布