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. 本文是第一节. ...
随机推荐
- spring揭密学习笔记(3)-spring ioc容器:掌管大局的IoC Service Provider
1.IOC service Provider的概念.IoC Service Provider在这里是一个抽象出来的概念,它可以指代任何将IoC场景中的业务对象绑定到一起的实现方式.它可以是一段代码,也 ...
- 关于HTTP_USER_AGENT
其实HTTP_USER_AGENT的内容获取的很详细 可以获取手机的型号 这个是我的手机用UC浏览器 访问获取的代码 Mozilla/5.0 (Linux; U; Android 7.1.1; zh- ...
- 《算法》第四章部分程序 part 9
▶ 书中第四章部分程序,包括在加上自己补充的代码,两种拓扑排序的方法 ● 拓扑排序 1 package package01; import edu.princeton.cs.algs4.Digraph ...
- hdfs fsimage namenode 应该设置多少堆内存合适
线上的fsimage 有1.8G左右了,设置了6G heap 不够用了 新生代:老年代=1:2=2G: 4G NameNode的内存主要由NameSpace和BlocksMap占用,其中NameSpa ...
- zip和zipPartitions
zip函数用于将两个RDD组合成Key/Value形式的RDD,这里默认两个RDD的partition数量以及元素数量都相同,否则会抛出异常. scala> val aa=sc.makeRDD( ...
- 4. Tomcat内存溢出解决
1. java.lang.OutOfMemoryError: PermGen space a.如果tomcat是以bat方式启动的,则如下设置: 修改TOMCAT_HOME/bin/catalina ...
- Android 8.0 新特性
Android 8.0 (Android Oreo(奥利奥))新特性介绍 通知渠道 - Notification Channels 通知渠道是由应用自行定义的通知内容类别,借助渠道,开发者可以让用户对 ...
- 使用Quartz框架定时发送预警邮件
1. Quartz定时发送预警邮件 1.1. 需求及实现思路 定时查询库存预警信息,一旦存在库存预警的商品,则发邮件通知相关人员 1.2. Quartz框架 Quartz是OpenSymph ...
- POI解析大量数据
参考:https://blog.csdn.net/whandgdh/article/details/80267674
- Word Ladder 有必要深究。非图的广度优先遍历。标记
感觉很生疏. https://leetcode.com/problems/word-ladder/