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

  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. 微信小程序笔记<七>视图层 —— wxml

    微信小程序的视图层由 *.wxml 组成,wxml与html一样属于标签语言,但wxml与html的标签截然不一样. xwml特性 一.数据绑定 <!--wxml--> <view& ...

  2. 使用Inent 携带 Bundle 携带 数组 传递给另外一个activity

    在activity发送数组: public static String [] PhoneAndTime = new String[2]; //new 新的Intent Intent data = ne ...

  3. LabelFunction 允许在显示数据以前进行处理

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  4. python 求3到8位数的水仙花数Pycharm实现

    #-*- coding: utf-8-*-import timeimport math#获取3位数的水仙花数start1 = time.time()start = time.time() number ...

  5. MySQL 5.7.20 ONLY_FULL_GROUP_BY

    < SQL_MODE 的配置方式 > 01,默认情况下 5.7.20 MySQL 开启该模式,我们可以用指 SQL 预计查看 => select @@global.sql_mode; ...

  6. docker 2 容器数据卷

    docker 启动tomcat docker run -it -p 8888:8080 tomcat 提交一个容器使之成为一个镜像 docker commit -a=“作者” -m=“提交信息” 模板 ...

  7. Xshell 用鼠标选中一段文字后自动换行

    现象: 使用Xshell连接远程服务器,一般选中都是鼠标选中,然后按快捷键 Ctrl+Insert复制,Shift+Insert粘贴. 可是当选中后松开鼠标,这时候仿佛在xshell里自动输了一个回车 ...

  8. django for 循环中,获取序号

    模板的for循环中,如何获取序号? 想过用enumerate,但是在模板中会报错 Could not parse the remainder xxx: 后来搜到 forloop.counter,完美解 ...

  9. golang web框架 beego

    尝试了下,在go环境ready的情况下,花了2分钟完成了beego安装.项目生成和启动,效率还是不错的 1.安装: go get github.com/astaxie/beego go get git ...

  10. day13-文件操作

    1.打开与关闭 1.1.open() close()我们使用 open() 函数打开文件.这个函数将返回一个文件对象,我们对文件的读写都将使用这个对象.open() 函数需要三个参数,第一个参数是文件 ...