• Java中字节流和字符流复制文件


    字节流和字符流复制文件的过程:

      1、建立两个流对象 绑定数据源和目的地

      2、遍历出需复制的文件写入复制过后的新文件中(只不过是遍历的时候是区分字节和字符的)

      3、访问结束后关闭资源

    字节流复制文件:

     1 package com.aaa.demo4;
     2 
     3 import java.io.FileInputStream;
     4 import java.io.FileNotFoundException;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 
     8 public class StreamCopy {
     9     public static void main(String[] args) {
    10         //1、建立两个流对象 绑定数据源和目的地
    11         FileInputStream fis=null;//绑定数据源
    12         FileOutputStream fos=null;//绑定目的地
    13         try {
    14             fis=new FileInputStream("c:\aaa.txt");//绑定需要复制的文件,也就是文件源
    15             fos=new FileOutputStream("d:\sfs.txt");//复制过后的位置和文件名,也就是目的地
    16             //遍历出需复制的文件的字节,一个字节一个字节的写入复制过后的新文件中
    17             int len=0;
    18             while((len=fis.read())!=-1){
    19                 fos.write(len);
    20             }
    21             
    22         } catch (Exception e) {
    23             // TODO Auto-generated catch block
    24             System.out.println("文件复制失败!");
    25         }finally{
    26             //资源访问过后关闭,先创建的后关闭,后创建的先关闭
    27             if(fos!=null){//资源初始化为null,使用了该资源这步就是判断资源是否被调用了,如果调用就关闭,如果未调用就不需要关闭
    28                 try {
    29                     fos.close();
    30                 } catch (IOException e) {
    31                     e.printStackTrace();
    32                 }finally{
    33                     if(fis==null){
    34                         try {
    35                             fis.close();
    36                         } catch (IOException e) {
    37                             System.out.println("释放资源失败");
    38                         }
    39                     }
    40                 }
    41             }
    42         }
    43     }
    44 }

    字符流复制文件:

     1 package com.aaa.demo4;
     2 
     3 import java.io.FileReader;
     4 import java.io.FileWriter;
     5 import java.io.IOException;
     6 
     7 public class ReaderCopy {
     8     public static void main(String[] args) {
     9         //1、建立两个流对象 绑定数据源和目的地
    10         FileReader fileReader=null;
    11         FileWriter fileWriter=null;
    12         try {
    13             fileReader=new FileReader("c:\aa.txt");
    14             fileWriter=new FileWriter("d:\sdf.txt");
    15             char[] a=new char[1024];
    16             int len=0;
    17             //遍历出需复制的文件的字符,一个字符一个字符的写入复制过后的新文件中
    18             while((len=fileReader.read())!=-1){
    19                 fileWriter.write(a,0,len);
    20                 fileWriter.flush();
    21             }
    22         } catch (Exception e) {
    23             // TODO Auto-generated catch block
    24             e.printStackTrace();
    25             //资源访问过后关闭,先创建的后关闭,后创建的先关闭
    26         }finally{
    27             if(fileWriter!=null){
    28                 try {
    29                     fileWriter.close();
    30                 } catch (IOException e) {
    31                     // TODO Auto-generated catch block
    32                     e.printStackTrace();
    33                 }finally{
    34                     if(fileReader!=null){
    35                         try {
    36                             fileReader.close();
    37                         } catch (IOException e) {
    38                             throw new RuntimeException("关闭失败");
    39                         }
    40                     }
    41                 }
    42             }
    43         }
    44     }
    45 }
  • 相关阅读:
    JS基础_自增和自减
    计算机组成原理
    SyntaxHighlighter
    10个经典的C语言面试基础算法及代码
    知名互联网公司面试题
    计算机网络基础知识(笔试题)
    面试准备之常见上机题目搜罗
    小米2013年校园招聘笔试题-简单并查集
    2014华为上机试题
    C++学习笔记
  • 原文地址:https://www.cnblogs.com/yanpingping/p/10595178.html
Copyright © 2020-2023  润新知