一:创建方式

1、建立输入(读)对象,并绑定数据源

2、建立输出(写)对象,并绑定目的地

3、将读到的内容遍历出来,然后在通过字符或者字节写入

4、资源访问过后关闭,先创建的后关闭,后创建的先关闭

总结:创建的方式都是差不多的,只不过是使用的输入和输出流不一样。

二:四种流复制文件的例子

1、字节流复制文件

 //1、字节流复制文件
public static void fun(File src,File desc ) throws Exception{
//建立字节流输入(读)对象,并绑定数据源
FileInputStream fis = new FileInputStream(src);
//建立字节流输出(写)对象,并绑定目的地
FileOutputStream fos=new FileOutputStream(desc);
int len=0;
byte[] b=new byte[1024];
//将读到的内容遍历出来,然后在通过字节写入
while((len=fis.read(b))!=-1){
fos.write(b,0,len);
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
fos.close();
fis.close();
}

2、字符流复制文件

 //2、字符流复制文件
public static void fun1(File src,File desc) throws Exception{
//建立字符流输入(读)对象,并绑定数据源
FileReader fReader=new FileReader(src);
//建立字符流输出(写)对象,并绑定目的地
FileWriter fWriter=new FileWriter(desc);
int len=0;
char[] b=new char[1024];
//遍历出需复制的文件的字节,一个字符一个字符的写入复制过后的新文件中
while((len=fReader.read(b))!=-1){
fWriter.write(b,0,len);
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
fWriter.close();
fReader.close();
}

3、字节缓冲区复制文件

 //3、字节缓冲区复制文件
public static void fun2(File src,File desc) throws Exception{
//建立字节缓冲流输入(读)对象,并绑定数据源
BufferedInputStream bu=new BufferedInputStream(new FileInputStream(src));
//建立字节缓冲流输出(写)对象,并绑定目的地
BufferedOutputStream ou=new BufferedOutputStream(new FileOutputStream(desc));
int len=0;
byte[] by=new byte[1024];
//将读到的内容遍历出来,然后在通过字节写入
while((len=bu.read(by))!=-1){
ou.write(by,0,len);
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
ou.close();
bu.close();
}

4、字符缓冲区复制文件

 //4、字符缓冲区复制文件
public static void fun3(File src,File desc) throws Exception{
//建立字符缓冲流输入(读)对象,并绑定数据源
BufferedReader br=new BufferedReader(new FileReader(src));
//建立字符缓冲流输出(写)对象,并绑定目的地
BufferedWriter bw=new BufferedWriter(new FileWriter(desc));
String len="";
char[] c=new char[1024];
//将读到的内容遍历出来,然后在通过字符写入
while((len=br.readLine())!=null){
bw.write(c,0,len.length());
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
bw.close();
br.close();
}

调用方法:

方法名(参数1,参数2);

其中我的参数1写的是读的对象也就是数据源,参数2代表的是要写入的目的地

 fun(new File("c:\\bu.txt"),new File("d:\\kk.txt"));

Java中的字节流,字符流,字节缓冲区,字符缓冲区复制文件的更多相关文章

  1. java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝

    接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...

  2. Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律

    第一讲     IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...

  3. Java IO 转换流 字节转字符流

    Java IO 转换流 字节转字符流 @author ixenos 字节流 输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| Fil ...

  4. JAVA之旅(二十四)——I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习

    JAVA之旅(二十四)--I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习 JAVA之旅林林总总也是写了二十多篇了,我们今天终于是接触到了I/O了 ...

  5. java基础46 IO流技术(输出字符流/缓冲输出字符流)

    一.输出字符流 1.1.输出字符流体系 --------| Writer:输出字符流的基类(抽象类)  ----------| FileWriter:向文件输出数据输出字符流(把程序中的数据写到硬盘中 ...

  6. 关于java中char占几个字节,汉字占几个字节

    我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的位数是不同的,比如gbk中汉字占2个字节,utf8中多数占3个字节,少数占4个.而所有汉字在java程序中我们都可以简单的用 ...

  7. (19)IO流之字符流FileReader和FileWriter,缓冲字符流---缓冲输入字符流BufferedReader和缓冲输出字符流BufferedWriter

    字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流: ...

  8. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_07 缓冲流_4_缓冲流的效率测试_复制文件

    把之前文件复制的代码复制到这里 一个字节一个字节的读取,复制文件 byte数组的形式 缓冲流测试 数组缓冲

  9. JAVA中的字节流与字符流

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

随机推荐

  1. StanFord ML 笔记 第三部分

    第三部分: 1.指数分布族 2.高斯分布--->>>最小二乘法 3.泊松分布--->>>线性回归 4.Softmax回归 指数分布族: 结合Ng的课程,在看这篇博文 ...

  2. SAP HANA数据库架构部署方法

    HANA作为内存数据库,在实现高性能访问的同时,必须也要有稳定的架构,今天我们就来看看企业部署SAP HANA时应该如何来设计数据库的架构. HANA数据库在安装时,有以下几种选择方法,为方便大家理解 ...

  3. tkinter menu

    python] view plain copy '''''Tkinter教程之Menu篇''' '''''1.创建一个简单的Menu''' # 添加菜单hello和quit,将hello菜单与hell ...

  4. py库: xlwt 、xlrd (写读EXCEL文件)

    写EXCEL文件 # -*- coding: utf-8 -*- import xlwt book = xlwt.Workbook(encoding = "utf-8", styl ...

  5. python中的center

    center(self,width,fillchar=None)让字符串居中显示,width定义字长度,fillchar定义空白处填充,不填写默认为空白 举个列子: 1 a = "hello ...

  6. 作为sort()方法的参数的比较函数(高程三第五章)

    <script> var nums = [0,1,5,10,15]; var nums2 = nums; nums.sort(); console.log(nums);//0,1,10,1 ...

  7. 2 算法查找&排序问题

    一.查找 1.查找的概念: 2 顺序查找(linear search) 从头找到尾 def linear_search(li,val): for ind ,v in enumerate(li): if ...

  8. newCachedThreadPool使用案例

    newCachedThreadPool 缓存默认60s 猜下你的结果 package com.juc.threadpool; import java.util.concurrent.ExecutorS ...

  9. Xe7 System.Json解析数据格式

    一.Demo一 解析嵌套数组 Json数据 {"code":1,"msg":"","data":{"Grade ...

  10. hadoop-2

    AsyncDispatcher,直接看代码 @Override protected void serviceStart() throws Exception { //start all the com ...