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

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

两者区别:字节流无缓冲区,字符流有缓冲区,必须关闭流(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();
                }
            }
            
        }
        
    }
}


阅读更多
个人分类: java基础
上一篇字节输入输出范例代码(FileInputStream,FileOutputStream)
下一篇包装流(BufferedReader)
想对作者说点什么? 我来说一句

Java_IO(输入输出)

2014年05月05日 3KB 下载

JavaIo流分析图

2015年12月11日 125KB 下载

java io 类 小结 代码

2010年07月21日 24KB 下载

Java IO 流的操作

2010年08月23日 30KB 下载

InputStream与OutputStream及File间互转

2011年08月17日 2.08MB 下载

没有更多推荐了,返回首页

关闭
关闭