当前位置: 代码迷 >> 综合 >> IO流 --BufferedReader
  详细解决方案

IO流 --BufferedReader

热度:62   发布时间:2023-12-27 13:23:54.0

1. 如何一行一行读取文件?

 或者BufferedReader 的子类:

(idea如何查看一个类的的子类?)

 工具类:

package com.springboot.demo.util;import java.io.*;/*** @program: springboot* @description:* @author: gyg* @create: 2021-08-29 13:35**/
public class IoUtils {/*** LineNumberReader 类使用示例*/public static void writeToFile(String filePath,String content) {OutputStreamWriter outputStreamWriter = null;try {//构造LineNumberReader实例 ,指定编码集 防止乱码outputStreamWriter = new OutputStreamWriter(new FileOutputStream(filePath), "utf-8");outputStreamWriter.write(content);// flush()方法起到强制写出的效果,在调用close()方法前,调用用flush()方法,这样能保证数据完整性outputStreamWriter.flush();} catch (FileNotFoundException ex) {ex.printStackTrace();} catch (IOException ex) {ex.printStackTrace();} finally {//outputStreamWritertry {if (outputStreamWriter != null) {outputStreamWriter.close();}} catch (IOException ex) {ex.printStackTrace();}}}/*** LineNumberReader 类使用示例*/public static String readFromFile(String filePath) {// 返回结果集StringBuffer logContentBuffer = new StringBuffer();// read fileLineNumberReader lineNumberReader = null;try {//构造LineNumberReader实例 ,指定编码集 防止乱码lineNumberReader = new LineNumberReader(new InputStreamReader(new FileInputStream(filePath),"utf-8"));// 将读取到的一行内容 放到 变量里String line ;// 父类 BufferedReader  就可以 readLine() 一行一行读取 ,// 所以  可以不用 LineNumberReader 对象,直接用 BufferedReader   reader=new BufferedReader(new FileReader(file));while ((line = lineNumberReader.readLine()) != null) {System.out.println("Line " + lineNumberReader.getLineNumber() +": " + line);logContentBuffer.append(line).append("\n");}} catch (FileNotFoundException ex) {ex.printStackTrace();} catch (IOException ex) {ex.printStackTrace();} finally {//关闭lineNumberReadertry {if (lineNumberReader != null) {lineNumberReader.close();}} catch (IOException ex) {ex.printStackTrace();}}return  logContentBuffer.toString();}}

测试方法:

 @Testvoid LineNumberReaderTest() {StringBuffer sb = new  StringBuffer();sb.append("1. 12345672345678");sb.append("\n");sb.append("2. 嘿嘿嘿");sb.append("\n");sb.append("3. 哈哈哈哈哈");sb.append("\n");sb.append("4. 呜呜呜呜");sb.append("\n");// 写入IoUtils.writeToFile("G:\\xxljob\\2021-08-29\\mytext.txt",sb.toString());//  String result = IoUtils.readFromFile("G:\\xxljob\\2021-08-29\\mytext.txt");System.out.println(result);System.out.println(result);}

执行结果: