复制文件的方法

package IO流;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Copy {
    public static void main(String[] args) {

        FileInputStream fis = null;
        FileOutputStream fos = null;
        try {
            fis = new FileInputStream("E://aa.txt");
             fos = new FileOutputStream("E://bb.txt");

            /**
             * 自定义缓存区对象
             */
            byte[] bt = new byte [1000000];

            int by = 0;

                while ((by = fis.read(bt) )!= -1){

                    fos.write(bt, 0, by);
                }

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        finally{
            try {
                fis.close();
                fos.close();
            }
            catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }
}

关于 “( by = fis.read(bt)) != -1 解释

查看源码发现read方法返回的是

public int read(byte b[]) throws IOException {
        return readBytes(b, 0, b.length);
    }
当读取完文件最后一个字节返回的是-1;

时间: 2024-10-09 13:49:19

复制文件的方法的相关文章

TP5项目中模板文件html的更新及php写入、删除与复制文件的方法

项目是thinkphp5的,后台有一个,上传html模板代码的功能. 因为模板里,除了html代码外,还有, {volist name="list" id="vo"}{/volist} {$title} php,js代码. 我是这样做的,先建一个template表. CREATE TABLE hk_template (     id INT(10) PRIMARY KEY NOT NULL,     name VARCHAR(30),     content TEX

android makefile文件批量复制文件的方法

该方法是shell 和makefile组合使用 wallpapers := $(shell ls packages/apps/hyst_apps/NewBingoLauncher_C/default_wallpaper_config/) PRODUCT_COPY_FILES +=  $(foreach wallpaper,$(wallpapers), $(if $(findstring customized_config,$(wallpaper)), \ packages/apps/hyst_a

java复制文件夹及所有子目录和文件

package text; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStrea

4种java复制文件的方式

尽管Java提供了一个可以处理文件的IO操作类,但是没有一个复制文件的方法.复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候.然而有几种方法可以进行Java文件复制操作,下面列举出4中最受欢迎的方式. 1. 使用FileStreams复制 这是最经典的方式将一个文件的内容复制到另一个文件中. 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B. 这是第一个方法的代码: 1 private static void copyFileUs

java复制文件夹中的所有文件和文件夹到另一个文件夹中

1.复制文件夹 public static void copyDir(String oldPath, String newPath) throws IOException { File file = new File(oldPath); String[] filePath = file.list(); if (!(new File(newPath)).exists()) { (new File(newPath)).mkdir(); } for (int i = 0; i < filePath.l

使用IO流复制文件夹(包括子目录)

IO流用于处理设备上的数据(包括硬盘,内存,键盘录入). IO流可根据流向不同分为输入流和输出流,根据处理数据类型不同分为字节流和字符流. 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表. 字节流和字符流的区别: a.读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节. b.处理对象不同:字节流能处理所有类型的数据(如图片.avi等),而字符流只能处理字符类型的数据. 结论:

linux使用su切换用户提示 Authentication failure的解决方法&amp; 复制文件时,报cp: omitting directory `XXX&#39;

linux使用su切换用户提示 Authentication failure的解决方法:这个问题产生的原因是由于ubtun系统默认是没有激活root用户的,需要我们手工进行操作,在命令行界面下,或者在终端中输入如下命令: sudo passwd Password:你当前的密码 Enter new UNIX password:这个是root的密码Retype new UNIX password:重复root的密码然后会提示成功的信息. 在说明一点,使用su和sudo是有区别的,使用su切换用户需要

安装程序无法复制文件 convlog.exe的解决方法

在安装的时候出现一个错误提示“安装程序无法复制文件CONVLOG.EX_”,上网找了很多资料,都说是因为版本问题,考虑到自己的服务器安装的是2003 SP1,后来打了补丁到SP2的,也就认为是版本问题,结果下了很多SP2版本也不行,再到网上搜索.有个说法是在运行-中输入“esentutl /p %windir%/security/database/secedit.sdb ” 就可以了,试了一下,还真管用,虽然不知道什么原理,但还是把它记录下来吧,以后用! C:\Documents and Set

C语言复制文件的两种简单的方法【从根本解决问题】

网上的方法大致有这样几种: 1.使用操作系统提供的复制文件的API 2.使用C语言本身提供的复制文件的函数 3.直接读写文件,从文件角度来操作,从而直接将一个文件复制 这里我们使用的就是这第三种. 复制文件的思路大概是这样的,如果是文本类型,则可直接使用字符读写的方式,依次读写到另一个文件中.但如果是非字符型文件那应该怎么进行操作呢?我的方法是使用二进制形式打开,然后依次针对字节进行操作,依次从文件第一个字节读写至最后一个字节实现文件的复制,那么由此可得,这种方法同样可以用在远程的操作上,即实现