文档章节

Io流字节字符流九种方式读取和写入总结!

大强森
 大强森
发布于 2017/04/03 23:46
字数 703
阅读 80
收藏 2
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

//复制文本文件a--b
public class Demo1 {
	public static void main(String[] args) {
		method1();// 普通字节流 /单个字节复制写入
		method2();// 普通字节流 /字节数组方式复制写入
		method3();// 高效字节流/单字节方式复制写入
		method4();// 高效字节流/字节数组方式复制写入
		method5();// 普通字符流/单字符方式复制写入
		method6();// 普通字符流/字符数组方式复制写入
		method7();// 高效字符流/单字符方式复制写入
		method8();// 高效字符流/字符数组方式复制写入
		method9();// 高效字符流/特殊方式复制写入
	}

	private static void method9() {
		// 高效字符流/特殊方式复制写入
		BufferedReader br = null;
		BufferedWriter bw = null;
		try {
			br = new BufferedReader(new FileReader("a.txt"));
			bw = new BufferedWriter(new FileWriter("b.txt"));
			String s = null;
			while ((s = br.readLine()) != null) {
				bw.write(s);
				bw.newLine();
				bw.flush();
			}
			br.close();
			bw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	private static void method8() {
		// 高效字符流/字符数组方式复制写入
		BufferedReader br = null;
		BufferedWriter bw = null;
		try {
			br = new BufferedReader(new FileReader("a.txt"));
			bw = new BufferedWriter(new FileWriter("b.txt"));

			char[] ch = new char[1024];
			int n = 0;
			while ((n = br.read(ch)) != -1) {
				bw.write(ch, 0, n);
				bw.flush();
			}
			bw.close();
			br.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private static void method7() {
		// 高效字符流/单字符方式复制写入
		BufferedReader br = null;
		BufferedWriter bw = null;
		try {
			br = new BufferedReader(new FileReader("a.txt"));
			bw = new BufferedWriter(new FileWriter("b.txt"));
			int n = 0;
			while ((n = br.read()) != -1) {
				bw.write(n);
				bw.flush();
			}
			bw.close();
			br.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	private static void method6() {
		// 普通字符流/字符数组方式复制写入
		FileReader fr = null;
		FileWriter fw = null;
		try {
			fr = new FileReader("a.txt");
			fw = new FileWriter("b.txt");
			char[] ch = new char[1024];
			int len = 0;
			while ((len = fr.read(ch)) != -1) {
				fw.write(ch, 0, len);
				fw.flush();
			}
			fr.close();
			fw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	private static void method5() {
		// 普通字符流/单字符方式复制写入
		FileReader fr = null;
		FileWriter fw = null;
		try {
			fr = new FileReader("a.txt");
			fw = new FileWriter("b.txt");
			int n = 0;
			while ((n = fr.read()) != -1) {
				fw.write(n);
				fw.flush();
			}
			fr.close();
			fw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	private static void method4() {
		// 高效字节流/字节数组方式复制写入
		BufferedInputStream bi = null;
		BufferedOutputStream bo = null;
		try {
			bo = new BufferedOutputStream(new FileOutputStream("b.txt"));
			bi = new BufferedInputStream(new FileInputStream("a.txt"));
			byte[] by = new byte[1024];
			int len = 0;
			while ((len = bi.read(by)) != -1) {
				bo.write(by, 0, len);
				bo.flush();
			}
			bi.close();
			bo.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	private static void method3() {
		// 高效字节流/单字节方式复制写入
		BufferedInputStream bi = null;
		BufferedOutputStream bo = null;
		try {
			bi = new BufferedInputStream(new FileInputStream("a.txt"));
			bo = new BufferedOutputStream(new FileOutputStream("b.txt"));
			int n = 0;
			while ((n = bi.read()) != -1) {
				bo.write(n);
				bo.flush();
			}
			bi.close();
			bo.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private static void method2() {
		// 普通字节流 /字节数组方式复制写入
		FileInputStream fi = null;
		FileOutputStream fo = null;
		try {
			fi = new FileInputStream("a.txt");
			fo = new FileOutputStream("b.txt");
			byte[] by = new byte[1024];
			int len = 0;
			while ((len = fi.read(by)) != -1) {
				fo.write(by, 0, len);
				fo.flush();
			}
			fi.close();
			fo.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	private static void method1() {
		// 普通字节流 /单个字节复制写入
		FileInputStream fi = null;
		FileOutputStream fo = null;
		try {
			fi = new FileInputStream("a.txt");
			fo = new FileOutputStream("b.txt");
			int n = 0;
			while ((n = fi.read()) != -1) {
				fo.write(n);
				fo.flush();
			}
			fi.close();
			fo.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}

 

© 著作权归作者所有

大强森
粉丝 2
博文 24
码字总数 9681
作品 0
奉贤
程序员
私信 提问
java基础学习总结——IO流

一、JAVA流式输入/输出原理 流是用来读写数据的,java有一个类叫File,它封装的是文件的文件名,只是内存里面的一个对象,真正的文件是在硬盘上的一块空间,在这个文件里面存放着各种各样的数...

HenrySun
2016/04/04
160
0
【Java IO】初识字节流和字符流

说到IO,在我们工作中是经常遇到的,比如文件的上传、网络的数据传输、系统的日志记录等,俯拾皆是。Java里面是怎么实现IO的,今天我们一起学习下。 Java种IO是通过流的方式实现的,流可以理...

火拳-艾斯
04/12
15
0
JAVA基础再回首(二十二)——转换流概述及用法、简化写法FileWriter和 FileReader、字符缓冲流及特殊用法、字节流字符流复制文件方法总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52435993 JAVA基础再回首(二十二)——转换流概述及用法、简化写法FileWriter和 Fi...

Aduroidpc
2016/09/04
0
0
OutputStream-InputStream-FileOutputStream-FileInputStream-BufferedOutputStream-BufferedInputStream

一.OutputStream 类(java.io) 概述:OutputStream类就是专门用于从程序中将数据写入到介质中; 定义:public abstract class OutputStream extends Object implements Closeable, Flushable Ou......

老胡2015
2017/06/22
0
0
Java IO源码分析 - Reader,Writer系列(二)

说明 PipedReader,PipedWriter InputStreamReader,OutputStreamWriter FileReader,FileWriter BufferedReader,BufferedWriter PrintWriter RandomAccessFile 说明 整个系列的文章全部参考......

HikariCP
2018/09/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
今天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
今天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
今天
4
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
今天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部