字节流和字符流复制文件的过程:

  1、建立两个流对象 绑定数据源和目的地

  2、遍历出需复制的文件写入复制过后的新文件中(只不过是遍历的时候是区分字节和字符的)

  3、访问结束后关闭资源

字节流复制文件:

 package com.aaa.demo4;

 import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; public class StreamCopy {
public static void main(String[] args) {
//1、建立两个流对象 绑定数据源和目的地
FileInputStream fis=null;//绑定数据源
FileOutputStream fos=null;//绑定目的地
try {
fis=new FileInputStream("c:\\aaa.txt");//绑定需要复制的文件,也就是文件源
fos=new FileOutputStream("d:\\sfs.txt");//复制过后的位置和文件名,也就是目的地
//遍历出需复制的文件的字节,一个字节一个字节的写入复制过后的新文件中
int len=0;
while((len=fis.read())!=-1){
fos.write(len);
} } catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("文件复制失败!");
}finally{
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
if(fos!=null){//资源初始化为null,使用了该资源这步就是判断资源是否被调用了,如果调用就关闭,如果未调用就不需要关闭
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fis==null){
try {
fis.close();
} catch (IOException e) {
System.out.println("释放资源失败");
}
}
}
}
}
}
}

字符流复制文件:

 package com.aaa.demo4;

 import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; public class ReaderCopy {
public static void main(String[] args) {
//1、建立两个流对象 绑定数据源和目的地
FileReader fileReader=null;
FileWriter fileWriter=null;
try {
fileReader=new FileReader("c:\\aa.txt");
fileWriter=new FileWriter("d:\\sdf.txt");
char[] a=new char[1024];
int len=0;
//遍历出需复制的文件的字符,一个字符一个字符的写入复制过后的新文件中
while((len=fileReader.read())!=-1){
fileWriter.write(a,0,len);
fileWriter.flush();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
}finally{
if(fileWriter!=null){
try {
fileWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(fileReader!=null){
try {
fileReader.close();
} catch (IOException e) {
throw new RuntimeException("关闭失败");
}
}
}
}
}
}
}

Java中字节流和字符流复制文件的更多相关文章

  1. java使用字节流和字符流实现文件复制

    大家在Java开发中都会遇到文件复制的文件,众所周知,需要通过文件输入输出流实现. 那究竟该怎么做那,话不多说,直接上代码: 一,使用字节流复制文件 public class FileByteCopy ...

  2. Java基础小知识1——分别使用字节流和字符流复制文件

    在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的. 1.使用字节流缓冲区复制文件 示例代码如下: import java.io ...

  3. java中字节流与字符流的区别

    字节流 在I/O类库中,java.io.InputStream和java.io.OutputStream分别表示字节输入流和字节输出流,它们都是抽象类,不能实例化,数据流中的最小单位是字节,所以叫做字 ...

  4. Java中字节流和字符流的比较(转)

    字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操 ...

  5. java中字节流和字符流的区别

    流分类: 1.Java的字节流   InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先.2.Java的字符流  Reader是所有读取字符串输入流的祖先,而 ...

  6. java中字节流与字符流以及字节流多余字节问题

    1.字节流 字节流byte为单位对文件的数据进行写入与读取操作.字节的方式在复制音频图片文件时比较适用,但在对于普通文件的读写上有两大缺陷: 第一,字节流在读取中文字符时,若设定的字节数组长度刚好末尾 ...

  7. Java IO 字节流与字符流 (五)

    Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字 ...

  8. Java IO 字节流与字符流 (三)

    概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...

  9. JAVA IO 字节流与字符流

    文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节.     ...

随机推荐

  1. python二进制转换

    例一.题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 分析: python没有unsigned int类型 >>> print ("%x&qu ...

  2. python中的insert

    insert()往列表的指定位置添加元素,举个例子: 1 a = ["hello", "world", "dlrb"] 2 a.insert ...

  3. 2. springboot启动报错:Field userMapper in com.service.UserService required a bean of type 'com.dao.UserMapper' that could not be found.

    报错信息: 2018-06-25 14:26:17.103  WARN 49752 --- [  restartedMain] ationConfigEmbeddedWebApplicationCon ...

  4. php单图片上传。

    1.input:file form 提交 /** * 用户头像上传 * @param [type] $file 图像信息 */ function domeadd($file){ if (is_arra ...

  5. ubuntu-Linux下如何安装Tensorflow?

    http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/os_setup.html https://www.cnblogs.com/ ...

  6. JS 原型链 prototypt 和隐式原型 _proto_

    prototype(原型) :  对象的一个属性,此属性使您有能力向对象添加属性和方法,当访问对象不存在属性是会自动到 prototype 中找 _proto_(隐式原型): 此对象构造函数(类)的原 ...

  7. Oracle事务隔离级别

    转自:https://blog.csdn.net/leozhou13/article/details/50449965

  8. Dubbo 服务容错Hystrix

    一.服务者 1.pom <dependency> <groupId>org.springframework.cloud</groupId> <artifact ...

  9. day04-完整性约束

    完整性约束 关键字: not null 与 default unique primary auto_increment foreign key 1.介绍 约束条件与数据类型的宽度一样,都是可选参数作用 ...

  10. git 每次push都需要输入用户和密码

    git remote -v origin https://github.com/userName/xx.git (fetch) origin https://github.com/userName/x ...