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

这篇文章主要介绍了使用BufferedReader读取本地文件的操作,具有很好的参考价值,希望对大家有所帮助。

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.输出结果为:

4.文件结构树:

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. 运行结果如下:

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. 运行结果:

9. 打开: basic.out文件

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...