2018-01-31

2018-01-31  本文已影响9人  I_Wright

java中对文件的读写操作


    public static void main(String[] args) throws IOException{
        Demo demo = new Demo();
        String path1 = "D:/1.txt";
        String path2 = "D:/2.txt";
        demo.useZiJie(path1,path2);
//      demo.useZiJie_bf(path1,path2);
//      demo.useZiFu(path1,path2);
//      demo.useZiFu_bf(path1,path2);
    }
    
    
    
    //用字节流中的FileInputStream和FileOutputStream对文件进行读写
    public void useZiJie(String path1,String path2) throws IOException{
        FileInputStream  fis = new FileInputStream(path1);
        FileOutputStream fos = new FileOutputStream(path2);
        byte[] b = new byte[100];    //用来存取每次读入的数据,如果知道文件大小,直接将100改为文件的大小
        int len = 0;
        while((len=fis.read(b))!=-1){ //read(byte[])每次返回读入的个数,如果已经达到流的结尾,则为-1
            fos.write(b, 0, len);     //0: 从中开始编写字符的偏移量      len:要写入的字符个数
        }
        fos.close();                 //必须关闭,否则无法读写
        fis.close();
        System.out.println("OK!");
        
    }
    
    
    //用字节流中的BufferedInputStream和BufferedOutputStream对文件进行读写
    public void useZiJie_bf(String path1,String path2) throws IOException{
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path1));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(path2));
        byte[] b = new byte[100];   //用来存取每次读入的数据,如果知道文件大小,直接将100改为文件的大小
        int len=0;
        while((len=bis.read(b))!=-1){//read(byte[])每次返回读入的个数,如果已经达到流的结尾,则为-1
            bos.write(b, 0, len);     //0: 从中开始编写字符的偏移量      len:要写入的字符个数
        }
        bis.close();                 //只要关闭最外层的流
        bos.close();
        System.out.println("OK!");
    }
    
    //用字符流中的FileWriter和FileReader对文件进行读写
    public void useZiFu(String path1,String path2) throws IOException{
        FileReader fr = new FileReader(path1);
        FileWriter fw = new FileWriter(path2);
        char[] c = new char[100];    //用来存取每次读入的数据,如果知道文件大小,直接将100改为文件的大小
        int len = 0;
        while((len=fr.read(c))!=-1){ //read(char[])每次返回读入的个数,如果已经达到流的结尾,则为-1
            fw.write(c, 0, len);     //0: 从中开始编写字符的偏移量      len:要写入的字符个数
        }
        fw.close();                 //必须关闭,否则无法读写
        fr.close();
        System.out.println("OK!");
    }
    
    //用字符流中的BufferedReader和BufferedWriter对文件进行读写
        public void useZiFu_bf(String path1,String path2) throws IOException{
            BufferedReader br = new BufferedReader(new FileReader(path1));
            BufferedWriter bw = new BufferedWriter(new FileWriter(path2));
            char[] c = new char[100];   //用来存取每次读入的数据,如果知道文件大小,直接将100改为文件的大小
            int len=0;
            while((len=br.read(c))!=-1){//read(byte[])每次返回读入的个数,如果已经达到流的结尾,则为-1
                bw.write(c, 0, len);     //0: 从中开始编写字符的偏移量      len:要写入的字符个数
            }
            br.close();                 //只要关闭最外层的流
            bw.close();
            System.out.println("OK!");
        }

}```
上一篇下一篇

猜你喜欢

热点阅读