java.io.file读文件_java使用IO读写文件总结

每次用到IO的读写文件都老忘记写法,都要翻过往笔记,今天总结下,省的以后老忘。java读写文件的IO流分两大类,字节流和字符流,基类分别是字符:Reader和Writer;字节:InputStream和OutPutStream,

1、字符流分为FileReader和FileWrtier,这两个的父类是InputStreamReader和OutStreamWrtier

2、字节流分为FileInputStream和FileOutPutStream

关系网:

Reader->InputStreamReader->FileReader

Reader->BufferedReader

Writer->OutputStreamWriter->FileWriter

Writer->BufferedWriter

InputStream->FileInputStream。FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。

InputStream->FilterInputStream->BufferedInputStream

OutputStream->FileOutputStream。FileOutputStream 用于写入诸如图像数据之类的原始字节的流。要写入字符流,请考虑使用 FileWriter

OutputStream->FilterOutputStream->BufferedOutputStream

流的程序一般分以下四步:

1.创建文件对象 File file = new File("xxx.txt");

2.用流装载文件 FileReader fr = new FileReader(file);

3.如果用缓冲区,则用缓冲区装载流,用缓冲区是为了提高读写性能 BufferReader br = new BufferReader(fr);

4.开始读写操作 String s = null; StringBuffer sb = new StringBuffer(); while((s=br.readLine()!=null) { sb.append(s); } 如果遇到字节流要转换成字符流,则在缓冲区前加一步 InputStreamReader isr = new InpuStreamReader(InputStream in); 或者需要编码转换的,则在缓冲区前加一步 InputStreamReader isr = new InpuStreamReader(InputStream in,Charset cs);

下面的代码分别是复制文本文件、图像文件。字节转换字符的操作:

packagecom.io;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.UnsupportedEncodingException;importcom.sun.org.apache.bcel.internal.generic.NEW;/***@authorQiaoJiafei

*@version创建时间:2016年4月12日 下午12:03:37

* 类说明*/

public classTestIO {public static void main(String[] args) throwsIOException {

testFileReader();

testFileInputStream();

}private static void testInputStream() throwsIOException {

InputStream ist=System.in;

BufferedReader br= new BufferedReader(new InputStreamReader(ist,"uft-8"));

String s= "";while ((s=br.readLine())!=null) {

System.out.println(s);

}

br.close();

}private static void testFileReader() throwsIOException {

FileReader reader= new FileReader("/Users/qiaojiafei/Documents/test.txt");

FileWriter writer= new FileWriter("/Users/qiaojiafei/Documents/test_copy.txt");

BufferedReader bReader= newBufferedReader(reader);

BufferedWriter bWriter= newBufferedWriter(writer);

String temp= "";while((temp=bReader.readLine())!=null) {

bWriter.write(temp);

}

bWriter.flush();

bWriter.close();

bReader.close();

}private static void testFileInputStream() throwsIOException {

FileInputStream fis= new FileInputStream("/Users/qiaojiafei/Documents/zz.png");

FileOutputStream fos= new FileOutputStream("/Users/qiaojiafei/Documents/zz_copy.png");

BufferedInputStream bInputStream= newBufferedInputStream(fis);

BufferedOutputStream bOutputStream= newBufferedOutputStream(fos);int temp = 0;while((temp=bInputStream.read()) != -1) {

bOutputStream.write(temp);

}

bOutputStream.flush();

bOutputStream.close();

bInputStream.close();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值