【Java IO】IO介绍

传统IO模型——流模型

 

Java IO分类

 

文件输入/输出流

FileInputStream/FileReader

FileOutputStream/FileWriter

示例:文件拷贝(字节流)

public void doCopy(){
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream(sourceFile);
fos = new FileOutputStream(newFile);
byte[] buffer = new byte[1024];
int hasRead = 0;
while((hasRead=fis.read(buffer))>0){
fos.write(buffer,0,hasRead);
}
}catch(IOException e){
}finally{
if(fis != null)
fis.close();
if(fos != null)
fos.close();
}
}

文件拷贝(字符流)

pubilc void doCopy(){
FileReader fr = null;
FileWriter fw = null;
try{
fr = new FileReader(sourceFile);
fw = new FileWriter(newFile);
char[] buffer = new char[32];
int hasRead = 0;
while((hasRead = fr.read(buffer)>0)){
fw.write(buffer,0,hasRead);
}
}catch(){}finally{}
if(fr != null)
fr.close();
if(fw != null)
fw.close();
}
 

 

包装流

隐藏底层设备上的节点流的差别。对外提供更加方便的输入/输出方法。

如:利用PrintStream输出字符串和对象——PrintStream.println(String) ,PrintStream.println(Object);

//节点流
FileOutputStream fos = new FileOutputStream(file);
//节点流 --> 包装流
PrintStream ps = new PrintStream(fos);
ps.println(string);
ps.println(object);
 

BufferedReader.readLine()方便读取一行内容;

//InputStream --> Reader
InputStreamReader reader = new InputStreamReader(System.in);
//节点流 --> 包装流
BufferedReader br = new BufferedReader(reader);
String buffer;
while((buffer = br.readLine()) != null){
//
}
 

注意:如果执行输入/输出的内容是文本内容,则考虑使用字符流;

如果是二进制内容,则考虑使用字节流。

 

转换流 (InputStreamReader/OutputStreamWriter):

字节流 --> 字符流

InputStreamReader reader = new InputStreamReader(InputStream);

OutputStreamWriter writer = new OutputStreamWriter(OutputStream);

 

RandomAccessFile

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值