使用BufferedReader读取本地文件的操作

作者:qq_42772927 时间:2021-10-15 03:22:47 

BufferedReader读取本地文件

在使用BufferedWriter写入文件时,如果忘记关闭文件(close)同时也没有调用flush(),则被写入的文件中是没有内容的。

在关闭文件的同时系统会自动调用flush()


try {
  File file=new File("c://aa.txt");
  FileInputStream is=new FileInputStream(file);

InputStreamReader reader=new InputStreamReader(is,"GBK");
  BufferedReader br=new BufferedReader(reader);
   String line=null;
  while ((line=br.readLine())!=null) {
   System.out.println(line);
  }
  reader.close();
  br.close();
  is.close();

} catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
}

BufferedReader 读取文件内容,原样输出

1.新建目标类:


package com.xuzhiwen.io;
public class TargetFile {
   public static void main(String[] args) {
       System.out.println("TargetFile.java");
   }
}

2.测试类:


package com.xuzhiwen.io;
import java.io.BufferedReader;
import java.io.FileReader;
public class TestBufferedReader {
   public static void main(String[] args) throws Exception {
       String filepath = "src/com/xuzhiwen/io/TargetFile.java";
       BufferedReader read = new BufferedReader(new FileReader(filepath));
       String s;
       StringBuffer sb = new StringBuffer();
       while((s=read.readLine()) != null){
           sb.append(s+"\n");
       }
       read.close();
       System.out.println(sb);
   }
}

3.输出结果为:

使用BufferedReader读取本地文件的操作

4.文件结构树:

使用BufferedReader读取本地文件的操作

5. 将结果用StringReader再读一次:


package com.xuzhiwen.io;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.StringReader;
public class TestBufferedReader {
   public static void main(String[] args) throws Exception {
       String filepath = "src/com/xuzhiwen/io/TargetFile.java";
       BufferedReader read = new BufferedReader(new FileReader(filepath));
       String s;
       StringBuffer sb = new StringBuffer();
       while((s=read.readLine()) != null){
           sb.append(s+"\n");
       }
       read.close();
       System.out.println(sb);

StringReader sr = new StringReader(sb.toString());
       int c;
       while((c=sr.read()) != -1){
           System.out.print((char)c);
       }
   }
}

6. 运行结果如下:

使用BufferedReader读取本地文件的操作

7. 将内容写入文件:


package com.xuzhiwen.io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.StringReader;
public class TestBufferedReader {
   public static void main(String[] args) throws Exception {
       String filepath = "src/com/xuzhiwen/io/TargetFile.java";
       BufferedReader read = new BufferedReader(new FileReader(filepath));
       String s;
       StringBuffer sb = new StringBuffer();
       while((s=read.readLine()) != null){
           sb.append(s+"\n");
       }
       read.close();
       System.out.println(sb);
       System.out.println("==============================================");

StringReader sr = new StringReader(sb.toString());
       int c;
       while((c=sr.read()) != -1){
           System.out.print((char)c);
       }
       sr.close();

System.out.println("==============================================");

String file = "basic.out";
       BufferedReader br = new BufferedReader(new StringReader(sb.toString()));
       PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));

int lineCount = 1;
       String ss;
       while((ss=br.readLine()) != null){
           pw.println(lineCount+":  "+ss);
           lineCount++;
       }
       pw.close();
   }
}

8. 运行结果:

使用BufferedReader读取本地文件的操作

9. 打开: basic.out文件:

使用BufferedReader读取本地文件的操作

来源:https://blog.csdn.net/qq_42772927/article/details/91489234

标签:BufferedReader,读取,本地文件
0
投稿

猜你喜欢

  • Java多线程通信:交替打印ABAB实例

    2022-04-08 06:57:28
  • 使用idea2017搭建SSM框架(图文步骤)

    2023-04-30 15:28:59
  • JDK8并行流及串行流区别原理详解

    2023-06-25 16:23:39
  • Android 静默安装实现方法

    2021-08-04 05:11:25
  • JDK8中的HashMap初始化和扩容机制详解

    2023-11-25 10:06:44
  • 详解SpringBoot缓存的实例代码(EhCache 2.x 篇)

    2023-04-05 04:55:18
  • 浅谈JAVA如何生成UUID唯一标识

    2023-08-12 20:45:03
  • C#使用Monitor类实现线程同步

    2021-07-20 03:01:14
  • Java 8 动态类型语言Lambda表达式实现原理解析

    2023-08-05 09:04:25
  • 在多线程中调用winform窗体控件的实现方法

    2023-09-13 09:07:43
  • java http token请求代码实例

    2022-09-28 18:23:19
  • Mybatis分页插件PageHelper的配置和简单使用方法(推荐)

    2022-03-20 06:34:55
  • 源码解析JDK 1.8 中的 Map.merge()

    2023-11-16 23:49:25
  • 详解Spring中bean的几种注入方式

    2023-02-12 20:25:07
  • Java中Future和FutureTask的示例详解及使用

    2023-01-29 11:48:42
  • SpringBoot整合Echarts实现用户人数和性别展示功能(详细步骤)

    2023-02-22 00:31:59
  • Android拍照或从图库选择图片并裁剪

    2023-07-01 08:21:45
  • 深入探究Spring底层核心原理

    2023-03-05 08:32:16
  • Java单例模式分析

    2023-11-16 03:17:06
  • Android实现语音播放与录音功能

    2022-01-21 15:39:09
  • asp之家 软件编程 m.aspxhome.com