黑马程序员------IO流文件复制4种代码实现
来源:互联网 发布:数据挖掘导论 完整版 编辑:程序博客网 时间:2024/05/15 00:05
文件复制方法概述
流是一个有序的字节序列,可作为一个输入源,也可作为一个输出的目的地。 字节流以字节为单位输入输出,字节流类名含有stream,字符流以字符为
单位输入输出,字节流 类名含有reader或writer.为了通用性,java中字符是16位的unicode字符,所以8位的字节流必 须和16位的字符流进行转换。字节
流到字符流的转换使用InputStreamReader类:
public InputStreamReader(InputStream in);
public InputStreamReader(InputStream in,String encoding);
public OuputStreamWriter(OnputStream in);
public OnputStreamWriter(OnputStream in,String encoding);
Reader和Writer类允许用户在程序中无缝的支持国际字符集,如果要读区的文件是别国语言, 要使用字符流。
JavaI/O字节流与字符流就是java 实现输入/输出 数据 字节流是一个字节一个字节的输入/输出 数据 (两个字节组成一个汉字)所以在用字节流读一串汉
字时会出现乱码问题,
同样字符流是一个字符一个字符流(一个字符=两个字节)的输入/输出 数据 用字符流读一串汉字可以解决乱码问题. 字符流操作时使用了缓冲区,而 在
关闭字符流时会强制性地将缓冲区
中的内容进行输出,但是如果程序没有关闭,则缓冲区中的内容是无法输出的,所以得出结论:字符流使用了缓冲区,而字节流没有使用缓冲区。
四中代码实现
package it.cast1;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class CopyFileDemo1 {public static void main(String[] args) throws IOException {// 创建文件输入流和文件输出流FileInputStream stream = new FileInputStream("a.txt");FileOutputStream stream2 = new FileOutputStream("E:\\b.txt");//methed(stream, stream2);//methed1(stream, stream2);//methed2(stream, stream2);//methed3(stream, stream2);}//高效字节流数字符数组读取private static void methed3(FileInputStream stream, FileOutputStream stream2) throws IOException {//高效字节流对象创建BufferedInputStream bis=new BufferedInputStream(stream);BufferedOutputStream bos= new BufferedOutputStream(stream2);//新建数组放读取字节byte [] arr = new byte [1024];//读取文件放入字节数组int read = 0;while ((read=bis.read(arr))!=-1) {//把字节数组写入复制的文件中bos.write(arr, 0, read);}//关闭高效字节流bis.close();bos.close();}//字节数组读取复制文件private static void methed2(FileInputStream stream, FileOutputStream stream2) throws IOException {// 新建数组int read = 0;byte [] arr = new byte [1024];//读取文件并把文件中每个字符存入数字while ((read=stream.read(arr))!=-1) {//把字节数组写入复制的文件中stream2.write(arr, 0, read);}//关闭数据流stream.close();stream2.close();}//高效字節流复制文件private static void methed1(FileInputStream stream, FileOutputStream stream2) throws IOException {//创建高效字节输出流和输入流BufferedInputStream bis=new BufferedInputStream(stream);BufferedOutputStream bos= new BufferedOutputStream(stream2);//读取int read = 0;while ((read = bis.read())!=-1) {//写入复制bos.write(read);}//关闭字节流bis.close();bos.close();}//字节流读取复制public static void methed(FileInputStream stream, FileOutputStream stream2)throws IOException {// 读取文件int read = 0;while ((read = stream.read()) != -1) {// 写去文件stream2.write(read);}// 关闭数据流stream.close();stream2.close();}}
- 黑马程序员------IO流文件复制4种代码实现
- 黑马程序员----------------io流复制文件
- 黑马程序员------IO流----复制
- 黑马程序员 用io流复制一个文件
- 黑马程序员——IO流复制文件
- 黑马程序员——IO流复制文件
- 黑马程序员-学习笔记2-IO流之文件复制
- 黑马程序员——java-使用IO流复制文件主要的五种方法
- 黑马程序员-Java文件复制代码
- 黑马程序员—IO流复制练习
- 黑马程序员-IO文件流
- 黑马程序员-用IO流复制文本文件、图片文件、歌词文件举例
- IO 流实现文件复制
- 黑马程序员--带内容的文件复制 io
- 黑马程序员-IO的复制
- 黑马程序员--IO流中使用字节流复制文件的效率比较
- 黑马程序员——【Java】IO——字符流:复制文件
- 黑马程序员——IO流的复制文件方法(含缓冲区方法)
- 设计模式-解释器模式
- Java读取带有BOM的UTF-8文件乱码原因及解决办法
- hdu5176 The Experience of Love[树 并查集]
- 线程间的通信
- [Java]学习笔记,随笔【八】
- 黑马程序员------IO流文件复制4种代码实现
- Java容器:HashMap和HashSet解析
- STL中的容器使用比较(string vector list deque set map)
- java设计模式之建造者模式
- 2015070108 - EffactiveJava笔记 - 第49条 基本类型优于装箱类型(1)
- Android手动显示和隐藏软键盘方法总结
- VIM code complete: YouCompleteMe
- Oracle 11g行列互换pivot和unpivot说明
- [leetcode] 115.Distinct Subsequences