背景:将指定的生产业务数据按行写入文本文件中,以便后续分析。
功能实现:按行写入、读取批量数据。
本文使用BufferedWriter和BufferedReader以
字符流
方式读写文本数据。
按行写数据到文本
BufferedWriter
write()方法向缓冲区写入数据
newLine()写入换行符
flush()将缓冲区数据刷写到外部文件,并清空缓冲区。
/**
* 向指定文件中写入数据
* @param outFileName 文件路径
* @param content 数据内容
* @param flag 追加写入
*/
public static void writeFile(String outFileName,String content,Boolean flag){
OutputStream out = null; // 内存输出流
BufferedWriter bw = null; // 内存数据写出到文件对象
try {
out = new FileOutputStream(outFileName,flag);
//生成UTF-8编码文件
bw = new BufferedWriter(new OutputStreamWriter(out, "utf-8"));
bw.write(content); // 数据写入缓冲区,一般在内存中
bw.newLine(); // 写入换行符
bw.flush(); // 清空缓冲区,刷写数据到外部文件中
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bw.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
按行读取文本数据
BufferedReader
BufferedReader.readLine() 读取一行数据内容,同时索引位移动到下一行开头,如果没有字符流则返回null。
/**
* 读取文件数据
* @param inFileName
*/
public static void ReadFile(String inFileName){
InputStream in = null; // 内存输入流
BufferedReader br = null; // 读取文件数据到内存对象
try{
in = new FileInputStream(inFileName);
String content = ""; // 接收文本内容
br = new BufferedReader(new InputStreamReader(in));
while ((content=br.readLine())!=null){ // 获取每一行数据,直至无数据
System.out.println(content); // 控制台输出内容
}
}catch (Exception e){
e.printStackTrace();
}finally {
try {
br.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
版权声明:本文为AlierSnow原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。