关闭

字符拷贝和字节拷贝文件对比(FileInputStream,FileOutputStream, FileReader, FileWriter)

标签: 文件拷贝字节字符FileReaderFileInputStream
265人阅读 评论(0) 收藏 举报
分类:

拷贝文件的思想就是从源文件路径读取文件,然后往目标文件路径写入文件

两者区别:字节流无缓冲区,字符流有缓冲区,必须关闭流(close操作)或者清空缓冲区(flush操作)才能写入成功

1:按字节拷贝文件( FileInputStream,FileOutputStream

import java.io.FileInputStream;
public class FileCopy
{
    public static void main(String[] args)
    {
        
        // 将  A 文件  拷贝到 B 文件
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try
        {
            fis = new FileInputStream("C:\\Users\\User02\\Desktop\\io.png");
            fos = new FileOutputStream("C:\\Users\\User02\\Desktop\\io.txt",true);
            // 默认会覆盖原有的数据,如果想追加append
            byte[] b = new byte[10];
            int i = 0;
            while((i = fis.read(b)) != -1)
            {
                fos.write(b,0,i);
            }
            
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }finally{
            if(fis != null)
            {
                try
                {
                    fis.close();
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
            
            if(fos != null)
            {
                try
                {
                    fos.close();
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
            
        }
        
    }
}


2:按字符拷贝文件(FileReader, FileWriter


import java.io.FileInputStream;

public class TestFileReaderAndWriter
{
    public static void main(String[] args)
    {
        
        // 将  A 文件  拷贝到 B 文件
        FileReader fr = null;
        FileWriter fw = null;
        try
        {
            fr = new FileReader("src/com/itany/coreJava/day18/a.txt");
            fw = new FileWriter("src/com/itany/coreJava/day18/b.txt");
            // 默认会覆盖原有的数据,如果想追加append
            

            System.out.println(fr.getEncoding());
            char[] b = new char[10];
            int i = 0;
            while((i = fr.read(b)) != -1)
            {
                fw.write(b,0,i);
            }
            
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }finally{
            if(fw != null)
            {
                try
                {
                    fw.close();
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
            
            if(fr != null)
            {
                try
                {
                    fr.close();
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
            
        }
        
    }
}


1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

使用字节流复制文件的四种方式以及效率比较

在java.io包中操作文件内容的主要有两大类:字节流、字符流。在对音乐和视频等文件进行IO操作时,都是使用字节流。 使用字节流操作时文件,有四种方式,现对一个flac文件分别使用四种方式进行复制,...
  • liuweiballack
  • liuweiballack
  • 2015-10-05 21:07
  • 4728

java文件流——使用字节流拷贝文件

文件流:文件在程序中是以流的形式来操作的 输入流:数据从数据源(文件)到程序(内存)的路径 输出流:数据从程序(内存)到数据源(文件)的路径 java流分为两种流:     1...
  • tingzhiyi
  • tingzhiyi
  • 2016-07-25 15:35
  • 1171

字符串操作(拷贝,比较,拼接等函数)

 1、数组拷贝函数:strcpy(),截图如下:     如果把char dest[10]编程*dest,这时候可能错。 如果strcpy复制数组。如有一下代码: ...
  • toto1297488504
  • toto1297488504
  • 2014-07-11 01:45
  • 1407

IO流第七课,字符流、纯文本、节点流,Reader、FileReader、Writer、FileWriter读取、写出、拷贝

字符流:只能处理纯文本,全部为可见字符,后缀为.txt和.html 节点流  Reader   FileReader              Writer    FileWriter ...
  • u013415353
  • u013415353
  • 2015-03-30 13:49
  • 290

Java IO流 FileOutputStream类 和 FileInputStream类 FileReader类和FileWriter类

FileOutputStream类和FileInputStream类,他们的父类分别是OutputStream类和InputStream类。FileOutputStream类FileInputStre...
  • lostinai
  • lostinai
  • 2012-07-14 14:12
  • 549

Java IO流 FileOutputStream类 和 FileInputStream类 FileReader类和FileWriter类

FileOutputStream类 和 FileInputStream类 简单用法,在现实工作中一般这个类使用频率比较低。一般我会使用FileReader类和FileWriter类
  • tianzhw
  • tianzhw
  • 2011-01-05 13:20
  • 3532

FileInputStream,FileOutputStream,FileReader,FileWriter,BufferedReader,BufferedWriter相关的IO技术

 参考http://blog.csdn.net/gyflyx/article/details/6439719 FileInputStream和FileOutputStream类分别用来...
  • u013097645
  • u013097645
  • 2016-10-27 13:12
  • 75

java io 笔记二:FileOutPutStream、FileInPutStream、FileWriter、FileReader类

欢迎技术交流。 QQ:138986722 FileOutPutStream 和FileInPutStream: package iotest; import java.io.*; pu...
  • hzw2312
  • hzw2312
  • 2011-04-28 18:24
  • 2602

用FileInputStream和FileOutputStream拷贝文件

在E:\JavaIO中新建abc.txt文件,并在里面写上一些文字。现在要做的是,在Eclipse里面用FileInputStream和 FileOutputStream的read()和write(...
  • u014042146
  • u014042146
  • 2015-09-10 16:35
  • 931

利用FileReader和FileWriter完成一个文件拷贝功能

目标: 在cmd中可以执行java XXXX d:\1.txt d:\2.txt 完成文件的拷贝命令 package com.ryan.io; import java.io.File; impo...
  • iceryan
  • iceryan
  • 2013-01-27 22:29
  • 2416
    个人资料
    • 访问:144356次
    • 积分:2600
    • 等级:
    • 排名:第16154名
    • 原创:77篇
    • 转载:94篇
    • 译文:2篇
    • 评论:13条
    最新评论