java.io中流的操作:字节流、字符流
(1)使用File类打开一个文件
(2)通过字节流或字符流的子类指定输出的位置
(3)进行读/写操作
(4)关闭输入/输出

1、字节流:主要是byte类型数据,以byte数组为准

输出数据:OutputStream类:字节输出流最大父类
输入数据:InputStream类

(1)

//第一步:使用File类打开电脑中的一个文档,文件不存在会自动创建
File f = new File("文件路径");
//第二步:通过字节流或字符流的子类指定输出的位置
OutputStream out = null;
out= new FileOutputStream(f);
//要输出的对象
String str = "Hello World";
//只能输出byte数组,所以需要将字符串变为byte数组
byte b[] =str.getBytes();
//将内容输出
out.write(b);
//关闭输出流
out.close();

(2)

//第一步:使用File类打开电脑中的一个文档
File f = new File("文件路径");
//第二步:通过字节流或字符流的子类指定读取的位置
InputStream input = null;
input= new FileInputStream(f);
//进行读操作,读到byte数组中,开辟大小为1024内存用来放数据
byte b[] = new byte[];
input.read(b);
//关闭输入流
input.close();
//把byte数组变为字符串输出
System.out.println("内容为:"+new String(b));

2、字符流

输出数据:Writer类
输入数据:Reader类

(1)

File f = new File("文件路径");
Writer out = null;
out= new FileWriter(f);
String str = "Hello World";
out.write(str);
out.close();

不需要将字符串变为byte数组之后再输出

(2)

//第一步:使用File类打开电脑中的一个文档
File f = new File("文件路径");
//第二步:通过字节流或字符流的子类指定读取的位置
Reader reader = null;
reader= new FileReader(f);
//进行读操作,读到byte数组中,开辟大小为1024内存用来放数据
char c[] = new char[];
reader.read(c);
//关闭输入流
reader.close();
//把byte数组变为字符串输出
System.out.println("内容为:"+new String(c));

区别:字符流操作时使用了缓冲区

缓冲区:关闭字符流时会强制性地将缓冲区中的内容进行输出,没有close(),缓冲区的内容是无法输出的,flush()方法会强制性清空缓冲区内容,然后输出数据

3、转换流——字符流<——>字节流

OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流(存储在文件中的只能是字节形式的数据)
InputStreamReader:是Reader的子类,将输入的字节流变为字符流(比如:BufferReader操作的只能是字符流)

最新文章

  1. GitHub Pages 绑定二级域名
  2. .Net GridView 序号列
  3. js监听input是第几次click
  4. 一个可拖拽的DIV框框
  5. ACM: Find MaxXorSum 解题报告-字典树
  6. FreeMarker模板语法
  7. html,css所遇问题(一)
  8. JAVA基于AE调用GP实现泰森多边形
  9. Windows Minifilter驱动 - 调式 (4)
  10. C++编程练习(9)----“图的存储结构以及图的遍历“(邻接矩阵、深度优先遍历、广度优先遍历)
  11. github上fork了别人的项目后,再同步更新别人的提交
  12. Python+Selenium 自动化实现实例-处理分页(pagination)
  13. 判断exe执行结束,事件监听
  14. Mac定时关机、重启、休眠命令行
  15. linux中环境变量PATH设置错误,导致ls cd 等命令不能使用,提示:没有那个文件或目录
  16. sql新语句
  17. iOS 静态库代码混淆方案
  18. jenkins远程执行shell
  19. c++程序的多文件组织
  20. HTML 的 style 属性

热门文章

  1. mysql 大数据量的处理
  2. (转)Thread.setDaemon设置说明
  3. D3.js 选择元素和绑定数据/使用数据
  4. Android控件_TextView(显示文本框控件)
  5. 数据分析学习(zhuan)
  6. 转!论if else与switch的效率高低问题
  7. SCCM日志存放路径
  8. 有关mipmaps
  9. 【bzoj1059】矩形游戏
  10. bower install和cnpm install