黑马程序员——java基础——IO--字节流,字符流
来源:互联网 发布:mac 控制安卓手机屏幕 编辑:程序博客网 时间:2024/06/08 19:59
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------字节输入输出流,字符输入输出流
一:字节流
1.输出流:
OutputStream:字节输出流顶级接口
FileOutputStream:字节输出流具体实现类
用FileOutputStream写出数据:
A:操作步骤
a:创建字节输出流对象
b:调用write()方法
c:释放资源
B:代码:
<span style="font-size:24px;"> FileOutputStream fos = new FileOutputStream("fos.txt"); fos.write("hello".getBytes()); fos.close();</span>
C:要注意的问题?
a:创建字节输出流对象做了几件事情?
1:调用系统功能去创建文件
2:创建fos对象
3:把fos对象指向这个文件
b:为什么要close()?
1:让流对象变成垃圾,这样就可以被垃圾回收器回收了
2:通知系统去释放跟该文件相关的资源
c:如何实现数据的换行?
因为不同的系统针对不同的换行符号识别是不一样的。
1. windows: \r\n 2. linux: \n 3.Mac : \r 而一些常见的个高级记事本,是可以识别 任意换行符号的。
d:如何实现数据的追加写入?
用构造方法带第二个参数是true的情况即可
2.输入流
InputStream:字节输入流顶级接口
FileInputStream:字节输入流具体实现类
FileInputStream读取数据
A:操作步骤
a:创建字节输入流对象
b:调用read()方法
c:释放资源
B:代码:
<span style="font-size:24px;"> FileInputStream fis = new FileInputStream("fos.txt"); //方式1,读取一个字节 int by = 0; while((by=fis.read())!=-1) { System.out.print((char)by); } //方式2,读取一个字节数组 byte[] bys = new byte[1024]; int len = 0; while((len=fis.read(bys))!=-1) { System.out.print(new String(bys,0,len)); } //释放资源 fis.close();</span>
(5)案例:复制文件
<span style="font-size:24px;">public class CopyFileDemo {public static void main(String[] args) throws IOException {// 封装数据源FileInputStream fis = new FileInputStream("c:\\a.txt");// 封装目的地FileOutputStream fos = new FileOutputStream("d:\\b.txt");// 复制数据int by = 0;while ((by = fis.read()) != -1) {fos.write(by);}// 释放资源fos.close();fis.close();}}</span>
二.字符流
1.输入流
Reader
|--InputStreamReader
|--FileReader
2.输出流
Writer
|--OutputStreamWriter
|--FileWriter
案例:复制文本文件
<span style="font-size:24px;">public class CopyFileDemo {public static void main(String[] args) throws IOException {// 封装数据源FileReader fr = new FileReader("c:\\a.txt");// 封装目的地FileWriter fw = new FileWriter("d:\\b.txt");// 读写数据int ch=0;while ((ch = fr.read()) != -1) {fw.write(ch);} // 一次一个字符数组 char[] chs = new char[1024]; int len = 0; while ((len = fr.read(chs)) != -1) { fw.write(chs, 0, len); fw.flush(); } //释放资源fw.close();fr.close();}}</span>
- 黑马程序员——java基础IO流概述、字符流、字节流、流操作规律
- 黑马程序员——Java基础---IO流概述、字符流、字节流、流操作规律
- 黑马程序员——java基础——IO--字节流,字符流
- 黑马程序员——Java基础------IO流之字符流、字节流和缓冲区。
- 黑马程序员——Java基础----IO(概述、字符流、字节流等)(1)
- 黑马程序员——Java基础---IO流(字节流)
- 黑马程序员——java基础 io 字节流
- 黑马程序员——Java基础---IO---字节流
- 黑马程序员——Java基础IO(一)——IO流概述、字符流、字节流、流操作规律
- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
- 黑马程序员——Java基础---IO流(字符流)
- 黑马程序员——java基础---IO---字符流
- 黑马程序员——java基础---IO---字符流
- 黑马程序员——IO流-字节流、字符流
- 黑马程序员——IO字符流与字节流
- 深入理解volatile关键字
- POJ 1328 Radar Installation(贪心)
- android-个性化进度条
- 20150316 N1
- 第一周项目四 图书馆的书
- 黑马程序员——java基础——IO--字节流,字符流
- CentOS安装VMware Tools+Linux读Windows文件
- onCreate(Bundle savedInstanceState)参数Bundle
- Spring 4.x+Spring MVC 4.x+MyBatis 3.x 整合(三)Spring MVC 参数传递
- 实模式和保护模式
- IOS开发—UITabBarController简单介绍
- C++ 封装,多态,继承特点
- GITHUB之GIT BASH使用教程
- Opencl how to choose work_group size