今天的这节课,Java胡将给我们讲讲IO流。
一、IO流(输入输出流)IO:Input/Output流的分类:
按照流的流向,流可以分为输入流和输出流
输入流:将外设(硬件设备、文件、网络、其他程序)中的数据输入的程序中
输出流:将程序中的数据输出到外设中
按照流所处理的数据类型,流可以分为字节流和字符流
字节流:以字节为处理单位,按字节进行读取/写出
字符流:以字符为处理单位,按字符进行读取/写出
按照处理方式的不同,流可以分为节点流(低级流)和处理流(高级流)
处理流一般都是对节点流进行封装得到的
按照流的流向和处理的数据类型:
输入流
输出流
字节流
字节输入流InputStream
字节输出流OutputStream
字符流
字符输入流Reader
字符输出流Writer
InputStream此抽象类是表示字节输入流的所有类的超类
OutputStream此抽象类是表示输出字节流的所有类的超类
Reader是所有字符输入流的所有类的超类
Writer是所有字符输出流的所有类的超类
二、字节输入流InputStream家族:InputStream
AudioInputStream
FileInputStream
用来读取文件数据
FilterInputStream
BufferedInputStream
带有缓冲区支持mark和reset
DataInputStream
支持各种数据类型的读取
SequenceInputStream
将两个字节输入流进行合并,可以通过一个流读取到2个流中的数据
ObjectInputStream
用于读取对象(反序列化)
三、字节输出流OutputStream家族:OutputStream
write(intbyte)
write(byte[]b)
write(byte[]b,int,int)
flush();
close();
ByteArrayOutputStream
将数据以字节的形式写入到一个字节数组
FileOutputStream
将数据以字节的形式写入到一个文件中
FilterOutputStream
BufferedOutputStream
带有缓冲区的字节输出流
DataOutputStream
支持各种数据类型的写入
ObjectOutputStream
writeObject(obj):可以写对象(对象序列化)
四.实例代码(借助流完成文件的拷贝)
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
publicclassCopyFile1{
publicstaticvoidmain(String[]args){
Stringsrc=D:/FeiQ.exe;
Stringdest=E:/.exe;
copy(src,dest);
}
privatestaticvoidcopy(Stringsrc,Stringdest){
FileInputStreamfis=null;
FileOutputStreamfos=null;
try{
fis=newFileInputStream(src);
fos=newFileOutputStream(dest);
byte[]b=newbyte[];
intlen=-1;
while((len=fis.read(b))!=-1){
fos.write(b,0,len);
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
try{
if(fos!=null)
fos.close();
if(fis!=null)
fis.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
福企智酷原创转载请注明出处
怎样判断是否患了白癜风白癜风扩散后有什么危害