import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException; /**
* 文件读取四步骤
* ---------要保证文件存在,不能保证就需判断是否存在,在这里手动创建一个文件text.txt以确保存在
* 1:获取文件
* 2:将文件写入到文件输入流中<文件输入流是字节流>
* 3:将文件流写入到输入流Reader中
* 4:将输入流文件放到缓冲流BufferReader中
* 四步骤:执行完毕文件会读入缓冲流
* 5:从缓冲流中每次读取一行打印输出
* 6:关闭资源<流>
* 文件写出同理:
* @author NEXT_NiGHT
*
*/
public class FileRW { public static void main(String[] args) {
//----------------------文件读入
//
File file = new File("text.txt");
try {
35 //2
36 FileInputStream fis=new FileInputStream(file);
37 //3
38 InputStreamReader isr=new InputStreamReader(fis,"utf-8");//FileInputStream字符流转换成字节流要注意编码
39 //4
40 BufferedReader br=new BufferedReader(isr);
41   //5
42 String line;//用来保存读取到的数据
43 while((line = br.readLine())!=null){//每次读取一行不为空
44 System.out.println(line);
45 }
//
br.close();
isr.close();
fis.close(); //----------------------文件写出
//1链接文件<要写出的位置>
File file2=new File("newtext.txt");
//2文件输出流
56 FileOutputStream fos=new FileOutputStream(file2);
57 //3输出流
58 OutputStreamWriter os=new OutputStreamWriter(fos,"utf-8");
59 //4写入缓冲流
60 BufferedWriter bw=new BufferedWriter(os);
61 //5写入
62 bw.write("七月七日长生殿\n");
63 bw.write("夜半无人私语时\n");
64 bw.write("在天月作比翼鸟\n");
65 bw.write("在地愿为连理枝\n");
//6关闭资源
bw.close();
os.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
}

以上代码完整阐述了从文件中读取的内容并打印输出,以及如何向一个文件中写入内容:

完整的eclise java代码,可直接运行;

text.txt文件:

七月七日长生殿
夜半无人私语时
在天愿作比翼鸟
在地愿为连理枝

  

注意:

  33行位置链接一个文件,若此时文件不存在那么进行后面的操作就会报异常,提示文件不存在。如果未进行文件是否存在的判定那么就必须保证文件是存在的。所以运行之前要在工程中创建一个文件text.txt

  55行的位置同样链接了一个文件,若文件不存在是否后续操作也会报异常呢?答案是否定的,56行的操作会自动创建一个文件,并且后面写入内容时会存入此文件

  62行写入文件时用到了write这个函数,执行完毕后如果我们换掉写入的内容,那么newtext.txt这个文件中的内容将是新的内容,write函数将会覆盖掉文件原来的内容

                                                                         2015-07-20

最新文章

  1. centos 7 install python spynner
  2. Java语法糖3:泛型
  3. Web API应用支持HTTPS的经验总结
  4. Android数据库更新&mdash;&mdash;上万条数据的插入
  5. Xcode 7 App Transport Security has blocked a cleartext HTTP 报错解决办法
  6. centos7.0 安装vsftp实录
  7. js窗口边缘滑入滑出效果-初级代码
  8. tarjan算法+缩点:求强连通分量 POJ 2186
  9. JS的十大经典算法排序
  10. CentOS 安装Gitolite 服务器
  11. synchronized原理
  12. Codeforces 633 C Spy Syndrome 2 字典树
  13. Android 用Intent和Bundle传递参数
  14. view动画库
  15. SQL 局域网远程备份
  16. Deep Learning (Python, C, C++, Java, Scala, Go)
  17. 简单的shared_ptr实现
  18. [JavaWeb]SpringSecurity-OAuth2.0 统一认证、资源分离的配置,用于分布式架构、模块化开发的认证体系
  19. docker~使用阿里加速器安centos
  20. 原生JS和JQuery的区别

热门文章

  1. 实时的.NET程序错误监控产品Exceptionless
  2. Python高手之路【一】初识python
  3. c#多线程
  4. C++随笔:.NET CoreCLR之GC探索(2)
  5. 获取打开的Word文档
  6. java面向对象中的关键字
  7. arcgis api for js入门开发系列六地图分屏对比(含源代码)
  8. arcgis api for js入门开发系列四地图查询(含源代码)
  9. Android中Fragment和ViewPager那点事儿(仿微信APP)
  10. 使用gulp解决RequireJS项目前端缓存问题(二)