关于Java中的IO流总结(推荐)
流的继承关系,以及字节流和字符流。
节点流FileOutputStream和FileInputStream和处理流BufferedInputStream和BufferedOutputStream。以及对应的FileOutputWriter,FileInputReader,BufferedInputReader,BufferedOutputWriter。
转换流InputStreamReader和OutputStreamWriter
一:流的继承关系
字节流
字符流
字符流和字节流的使用范围:字节流一般用来处理图像,视频,以及PPT,Word类型的文件。字符流一般用于处理纯文本类型的文件,如TXT文件等,字节流可以用来处理纯文本文件,但是字符流不能用于处理图像视频等非文本类型的文件。
二:处理流BufferedReader,BufferedWriter,BufferedInputStream
BufferedOutputsStream,都要包上一层节点流。也就是说处理流是在节点流的基础之上进行的,带有Buffered的流又称为缓冲流,缓冲流处理文件的输入输出的速度是最快的。所以一般缓冲流的使用比较多。
下面是两个简单的文件复制的实例:
public class MycopyTest { public static void main(String[] args) { File class="lazy" data-src = new File("D:/1.jpg"); // D:/1.jpg必须的存在不然会报错 File dest = new File("D:/2.jpg"); // 如果D:/2.jpg存在则覆盖,如果不存在则新建 streamCopy(class="lazy" data-src, dest); }private static void readCopy(File class="lazy" data-src,File dest) { FileReader fr=null; FileWriter fw=null; BufferedReader br=null; BufferedWriter bw=null; try { fr=new FileReader(class="lazy" data-src); fw=new FileWriter(dest); br=new BufferedReader(fr); bw=new BufferedWriter(fw); String str; while((str=br.readLine())!=null) { bw.write(str); bw.newLine(); } }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { bw.close(); br.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private static void streamCopy(File class="lazy" data-src, File dest) { FileInputStream fis = null; FileOutputStream fos = null; BufferedInputStream bis = null; BufferedOutputStream bos = null; try { fis = new FileInputStream(class="lazy" data-src); fos = new FileOutputStream(dest); bis = new BufferedInputStream(fis); bos = new BufferedOutputStream(fos); int len; byte[] b = new byte[1024]; while ((len = bis.read(b)) != -1) { bos.write(b, 0, len); // bos.write(b,0,len);是把读到数组的大小字节写入 // bos.write(b);最后一次如果数组未写满的话就会多读。 } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { bos.close(); bis.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
关于Java中的IO流总结(推荐)
下载Word文档到电脑,方便收藏和打印~