函数介绍

public String readLine():每次读取文件的一行,当文件读取完毕时,返回null

    public int read(byte[] b):将文件内容读取到字节数组b

    public int write(byte[] b, int off, int len):将字节数组中[off, off+len)位置的内容写入文件

文件复制

其实文件复制,在读取一个文件的同时,将读取到的内容写入另外一个文件中

代码实例

package cn.edu.pzhu;

import java.io.*;

public class FileCopyDemo {

    public static void main(String[] args) throws IOException {
        String src = "D:\\Test\\in.data";
        String des = "D:\\Test\\out.data";
        //复制文件
        boolean success = copyFile(src, des);
        if (success) {
            //文件复制成功
            System.out.println("读取成功,该文件的内容是:");
            readFile(des);
        } else {
            //复制失败
            System.out.println("Copy failed");
        }
    }

    //读取文件
    public static void readFile(String des) throws IOException {
        File file = new File(des);
        BufferedReader buffRead = new BufferedReader(new FileReader(file));
        String line = null;
        while((line = buffRead.readLine()) != null) {
            System.out.println(line);
        }
    }

    //创建文件
    public static void createFile(String fileName) throws IOException {
        File file = new File(fileName);
        if (!file.exists()) {
            file.createNewFile(); //创建该文件
        }
    }

    //将文件从src复制到des
    public static boolean copyFile(String src, String des) throws IOException {
        boolean ok = true;
        File fsrc = new File(src);
        File fdes = new File(des);
        if (!fsrc.exists()) {
            System.out.println(fsrc.getAbsolutePath() + "is not exists!");
            return false;
        }
        //目标文件不存在
        if (!fdes.exists()) {
            createFile(des);
        }
        //目标文件是文件夹
        if (fdes.isDirectory()) {
            System.out.println(fdes.getAbsolutePath()+" is a directory!");
            return false;
        }
        //开始复制文件
        //创建文件输入流
        FileInputStream fin = null;
        FileOutputStream fout = null;
        try {
            fin = new FileInputStream(fsrc);
            //创建文件输出流
            fout = new FileOutputStream(fdes);
            //创建缓存区
            byte buff[] = new byte[1024];
            int len;
            while((len = fin.read(buff)) != -1) {
                fout.write(buff, 0, len);
            }
        } catch (Exception e) {
            ok = false;
            e.printStackTrace();
        } finally {
            fin.close();
            fout.close();
        }
        return ok;
    }

}

如有不当之处欢迎指出!

Java文件复制与读写的更多相关文章

  1. IO复制多级目录 控制台输入文件目录然后把目录下java文件复制到 D: 并统计java个数

    package cn.itcast_05; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...

  2. java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数

    File 递归删除文件夹中所有文件文件夹 package com.swift.kuozhan; import java.io.File; import java.util.Scanner; /*键盘录 ...

  3. Java算法面试题:编写一个程序,将e:\neck目录下的所有.java文件复制到e:\jpg目录下,并将原来文件的扩展名从.java改为.jpg

    package com.swift; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; i ...

  4. Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件

    package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...

  5. java 文件复制

      java实现文件复制 CreateTime--2017年9月7日15:04:48 Author:Marydon 1.需求 根据原文件复制一份到指定位置 2.代码实现 需要导入: import ja ...

  6. Java文件复制删除操作合集

    import java.io.*; public class FileOperate { public FileOperate() { } /** * 新建目录 * @param folderPath ...

  7. java 文件复制操作

    本案例采用第三方 jar 包完成,commons-io-2.5.jar, 这个 jar 对文件操作非常方便,大家可以尝试使用一下. 这里贴一个简单的 demo 供大家使用 import java.io ...

  8. java文件复制函数

    在写代码中,经常会需要复制文件.这时候就可以把这些函数放到工具类里面. 下面是一个复制文件的函数: public class CopyFileUtil { private static String ...

  9. Java文件复制

    主要是工作代码,无解释. /** * 将文件或文件夹source复制到dest * <br>目标文件检测: * <br> a.当文件不存在时:需要创建文件 * <br&g ...

随机推荐

  1. js_4_函数

    js的函数是怎么定义的? function 函数名(形参1,......) { 函数体: return 返回值 :                                 //  可以没有返回 ...

  2. [搬运] .NET Core 2.1中改进的堆栈信息

    原文 : Stacktrace improvements in .NET Core 2.1 作者 : Ben Adams 译者 : 张很水 . NET Core 2.1 现在具有可读的异步堆栈信息!使 ...

  3. SVN中服务器地址变更

    SVN中服务器地址变更后不需要重新导项目,只要修改下SVN的服务器地址,更新一下即可.有两种方法: 方法一:通过MyEclipse中SVN插件 1.选择window→show view→other→S ...

  4. Mybatis (一)

    1 DAO层框架 框架:是一种整体的解决方案. 1.1 JDBC的步骤 1.2 Hibernate执行的步骤 1.3 MyBaits 2 Mybatis简介 Mybatis是支持定制化SQL.存储过程 ...

  5. Hibernate (二)

    1 一级缓存的引入 示例: @Test public void testUpdate(){ Configuration configuration = new Configuration().conf ...

  6. ado.net 参数传递之 in

    之前项目有一放行的功能,对某界面维护时(数据的增删改),先将数据保存到临时表中,放行后再真正的写入到库中.由于设计到主从表多中约束关系,所以当时我采用的是写一个存储过程来对某个界面的操作进行统一处理, ...

  7. 性能测试监控:Jmeter +InfluxDB +collectd +Grafana

    虚拟机ip 192.168.180.128 Influxdb Influxdb是一个开源的分布式时序.时间和指标数据库,使用go语言编写,无需外部依赖. 它有三大特性: 时序性(Time Series ...

  8. 解决mysql、vsftp远程连接速度慢的问题

    以 centOS 6.3(其他操作系统类似,同样适用)说明: 当我们的服务都配置正常的情况下,有时会出现连接速度慢而导致连接失败的问题 问题分析:这些情况一般都是DNS解析惹的祸 mysql连接速度慢 ...

  9. androidstudio canary5一个bug

    Android Studio最新开发版一直跟着升级.到Canary5的时候出了一个bug. app build.gradle添加自己编译的aar库,原本一直使用: compile(name:'ijkp ...

  10. netstream播放rtmp直播流卡顿

    标准的flash播放器ActionScript3语句,播放flash publish的rtmp流,NetConnection--->NetStream--->play--->atta ...