Java中字节流和字符流复制文件
字节流和字符流复制文件的过程:
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中字节流和字符流复制文件的更多相关文章
- java使用字节流和字符流实现文件复制
大家在Java开发中都会遇到文件复制的文件,众所周知,需要通过文件输入输出流实现. 那究竟该怎么做那,话不多说,直接上代码: 一,使用字节流复制文件 public class FileByteCopy ...
- Java基础小知识1——分别使用字节流和字符流复制文件
在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的. 1.使用字节流缓冲区复制文件 示例代码如下: import java.io ...
- java中字节流与字符流的区别
字节流 在I/O类库中,java.io.InputStream和java.io.OutputStream分别表示字节输入流和字节输出流,它们都是抽象类,不能实例化,数据流中的最小单位是字节,所以叫做字 ...
- Java中字节流和字符流的比较(转)
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操 ...
- java中字节流和字符流的区别
流分类: 1.Java的字节流 InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先.2.Java的字符流 Reader是所有读取字符串输入流的祖先,而 ...
- java中字节流与字符流以及字节流多余字节问题
1.字节流 字节流byte为单位对文件的数据进行写入与读取操作.字节的方式在复制音频图片文件时比较适用,但在对于普通文件的读写上有两大缺陷: 第一,字节流在读取中文字符时,若设定的字节数组长度刚好末尾 ...
- Java IO 字节流与字符流 (五)
Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字 ...
- Java IO 字节流与字符流 (三)
概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...
- JAVA IO 字节流与字符流
文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节. ...
随机推荐
- mysql之pymsql的使用
# -*- coding:utf-8 -*- import pymysql user = input('请输入用户名:') pwd = input('请输入密码:') # 1.连接 conn = py ...
- 26.pymysql、pymongo、redis-py安装
pymysql.pymongo.redis-py安装 1.将数据存入mysql借助pymysql2.和MongoDB进行交互,借助pymongo pip3 install pymysql(pip 安装 ...
- 《算法》第六章部分程序 part 3
▶ 书中第六章部分程序,包括在加上自己补充的代码,后缀树的两种实现 ● 后缀树实现一 package package01; import java.util.Arrays; import edu.pr ...
- Impala SQL 使用小记
1. impala端创建的表,DROP. hive会自动同步到. 但是通过hive DROP时,数据还会在,只是表的元数据没有了. 所以完全DROP表,需要impala端的DROP 2. impal ...
- linux base shell 基础语法2
转载 http://blog.csdn.net/aggrelxf/article/details/8263110 单引 双引 反引用[] [[]] 将命令的输出读入一个变量中,可以将它放入双引号中,即 ...
- php多图片上传。
1. <form method="post" enctype="multipart/form-data" action='请求地址' > <i ...
- log4js_Node.js中的日志管理模块使用
{ "appenders": [ // 下面一行应该是用于跟express配合输出web请求url日志的 {"type": "console" ...
- 白鹭引擎 - 资源文件的加载 ( RES, loadConfig, loadGroup )
class Main extends egret.DisplayObjectContainer { public constructor() { super(); this.addEventListe ...
- MemberShip的 链接字符串的使用
1.运行asp.net Sql Server注册工具:aspnet_regsql.exe,详细参见:http://msdn.microsoft.com/zh-cn/library/ms229862(v ...
- Redis list 数据类型
lpush()先进后出 //从头部加入元素 //栈 lrange 元素集合 0 -1 lpop 从list头部删除元素,并返回删除元素 rpush()先进先出 //从尾部加 ...