1.IO流的概述:用来进行设备间的数据传输问题
上传文件和下载文件
Java对数据的 *** 作是通过流的方式
Java用于 *** 作的对象都在IO包中
2、IO流的分类:
流向: 输入流 读取数据
输出流 写出数据
数据类型: 字节流
字节流输入流 读取数据 InputStream
字节流输出流 写出数据 OutputStream
字符流
字符流输入流 读取数据 Reader
字符流输出流 写出数据 Writer
如果 *** 作的数据是文本数据就用字符流,用Windows自带的记事本,能读懂就是用字符流,读不懂就用字节流,什么都不知道就用字节流
注意:没有明确说明按哪种分类,默认按数据类型
3.OutputStream 该流是一个抽象类,不能实例化,找一个子类
注意:每种基类的子类都是以父类名作为后缀名
XxxOutputStream
XxxInputStream
XxxReader
XxxWriter
FileOutputStream的构造方法:
FileOutputStream(File file)
FileOutputStream(String name)
4.字节输出流 *** 作步骤
(1)创建字节流输出流对象
调用系统功能去创建文件
创建fos对象
把fos对象指向这个文件
(2)写数据
(3)释放资源 关闭此文件输出流并释放此流有关的所有系统资源
fos.close();
为什么一定要.close();
让流对象变成垃圾,可以被垃圾回收器回收
通知系统去释放该文件相关的资源
5.字节流写数据的方式:
public void write(int b)
public void write(byte[] b)
public void write(byte[] b ,int off,int len)
6.如何实现数据的换行
写入换行符号 windows:rn
Linux:n
Mac:n
常见高级记事本是可以识别任意换行符号的
7.如何实现数据的追加写入?(写入文件末尾,而不是文件的开始处)
用构造方法第二个参数是turn的情况即可
FileOutputStream fos=new FileOutputStream(“fos.tex”,turn);
8.字节输入流 *** 作步骤
(1)创建字节输入流对象
(2)调用reader()方法读取数据,并把数据显示在控制台
读取数据的方式:
int reader() 一次读取一个字节
int reader(byte[] b) 一次读取一个字节数组
(3)释放资源
9.字节流复制文本文件
数据源:从哪来
目的地:到哪去
public static void main(String[] args) throws IOException { //封装数据源 FileInputStream fis=new FileInputStream("a.txt"); //封装目的地 FileOutputStream fos=new FileOutputStream("b.txt"); //复制数据 //int by=0; //while((by=fis.read())!=-1) { // fos.write(by); //} byte[] bys=new byte[1024]; int len=0; while((len=fis.read(bys))!=-1) { fos.write(bys,0,len); } //释放资源 fos.close(); fis.close(); }
10.计算机如何识别什么时候该把两个字节转化为一个中文呢?
在计算机中文的存储分两个字节
第一个字节肯定是负数
第二个字节常见的是负数,可能有正数。但是没影响
11.字节缓冲流
字节缓存输出流
BufferedOutputStream(写)
字节缓存输入流
BufferedInputStream(读)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)