Java IO输入输出流 FileWriter 字符流





字节缓冲流
//为什么要使用包装流,使用包装流是为了提高读写操作的性能。
public class Packing_flowDemo {
public static void main(String[] args) throws Exception {
File file = new File("file/packing_flow.txt");
//包装流的写法,缓冲区内存大小。1024*8=8192 (byte)
// BufferedOutputStream packing = new BufferedOutputStream(new FileOutputStream(file, true));
// packing.write("大家好!你好吗?how are your !".getBytes());
// packing.close();
//包装流的读写操作。
BufferedInputStream outPacking = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[1024];
int len = -1;
while ((len = outPacking.read(buffer)) != -1) {
System.out.println(new String(buffer, 0, len));
}
}
}
public static void main(String[] args) throws IOException {//为了代码看起来美观一些,直接抛出去
File file=new File("moves/许嵩 - 素颜 - 现场版.mp3");
File file1=new File("moves/许嵩 - 素颜.mp3");
//text(file, file1);
//text2(file, file1);
//text3(file, file1);
text4(file, file1);
}
private static void text(File file,File file1) throws IOException {
//节点流的方法,一个一个字节的读和写
long begin=System.currentTimeMillis();
FileInputStream in=new FileInputStream(file);
FileOutputStream out =new FileOutputStream(file1);
int len=-1;
while((len=in.read())!=-1){
out.write(len);
}
in.close();
out.close();
System.out.println(System.currentTimeMillis()-begin);//5547毫秒
}
private static void text2(File file,File file1) throws IOException {
//缓冲流的写法,一个一个字节的读和写
long begin=System.currentTimeMillis();
BufferedInputStream in=new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream out =new BufferedOutputStream(new FileOutputStream(file1));
int len=-1;
while(in.read()!=-1){
out.write(len);
}
in.close();
out.close();
System.out.println(System.currentTimeMillis()-begin);//63毫秒
}
private static void text3(File file,File file1) throws IOException {
//节点流的写法,一次性读取1024个字节
long begin=System.currentTimeMillis();
FileInputStream in=new FileInputStream(file);
FileOutputStream out =new FileOutputStream(file1);
int len=-1;
byte[] buffer=new byte[1024];
while((len=in.read(buffer))!=-1){
out.write(buffer,0,len);
}
in.close();
out.close();
System.out.println(System.currentTimeMillis()-begin);//38毫秒
}
private static void text4(File file,File file1) throws IOException {
//缓冲流的写法,一次性读取1024个字节
long begin=System.currentTimeMillis();
BufferedInputStream in=new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream out =new BufferedOutputStream(new FileOutputStream(file1));
int len=-1;
byte[] buffer=new byte[1024];
while((len=in.read(buffer))!=-1){
out.write(buffer,0,len);
}
in.close();
out.close();
System.out.println(System.currentTimeMillis()-begin);//4毫秒
}
Java IO输入输出流 FileWriter 字符流的更多相关文章
- java.IO输入输出流:过滤流:buffer流和data流
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...
- java IO输入输出流中的各种字节流,字符流类
字节流字节流主要是操作byte类型数据,也byte数组为准,主要操作类就是·字节输出流:OutputStream·字节输入流:InputStream字符流在程序中一个字符等于2个字节,那么java提供 ...
- Java精选笔记_IO流(字符输入输出流、字符文件输入输出流、字符流的缓冲区)
字符流 Reader是字符输入流的基类,用于从某个源设备读取字符 Writer是字符输出流,用于向某个目标设备写入字符 字符流操作文件 字符输入流FileReader,通过此流可以从关联的文件中读取一 ...
- java io 输入输出流
数据流分类: 流序列中的数据既可以是未经加工的原始二进制数据, 也可以是经一定编码处理后符合某种格式规定的特定数据. 因此Java中的流分为两种: 1) 字节流:数据流中最小的数据单元是字节 2) 字 ...
- Java IO(四)——字符流
一.字符流 字节流提供了处理任何类型输入/输出操作的功能(因为对于计算机而言,一切都是0和1,只需把数据以字节形式表示就够了),但它们不可以直接操作Unicode字符,因为一个Unicode字符占用2 ...
- java IO的字节流和字符流及其区别
1. 字节流和字符流的概念 1.1 字节流继承于InputStream OutputStream, 1.2 字符流继承于InputStreamReader OutputStre ...
- Java IO 输入输出流 详解 (一)***
首先看个图: 这是Javaio 比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于io的处理类,比如console类,SteamTokenzier,Externalizable接口,Seri ...
- Java基础(二十七)Java IO(4)字符流(Character Stream)
字符流用于处理字符数据的读取和写入,它以字符为单位. 一.Reader类与Writer类 1.Reader类是所有字符输入流的父类,它定义了操作字符输入流的各种方法. 2.Writer类是所有字符输出 ...
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...
随机推荐
- FastAdmin + uni-app
FastAdmin + uni-app FastAdmin https://www.FastAdmin.net uni-app http://uniapp.dcloud.io/ 自己先挖个坑.
- Rancher使用入门
http://tonybai.com/2016/04/14/an-introduction-about-rancher/
- bzoj 3295 (洛谷3157、3193) [Cqoi2011]动态逆序对——树套树 / CDQ分治
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3295 题目--洛谷3157:https://www.luogu.org/problemnew ...
- JBPM的ORACLE脚本
create table JBPM4_DEPLOYMENT ( DBID_ number(19,0) not null, NAME_ clob, TIMESTAMP_ number(19,0), ST ...
- FPGA学习中的代码阅读
不管是学FPGA还是C语言,任何一种代码的学习都离不开大量的代码阅读,也就是多看,多学习别人的代码.初学者在学习的过程中更为重要的是模仿,模仿别人的代码算法怎么去处理的,模仿多了,代码看的多了,能力自 ...
- module_param 用于动态开启/关闭 驱动打印信息
1.定义模块参数的方法: module_param(name, type, perm); 其中,name:表示参数的名字; type:表示参数的类型; perm:表示参数的访问权限 ...
- json and pickle 序列化和反序列化
类似vmware虚拟机里的虚拟主机挂起操作,把当前内存拷贝成文件保存. 上面的这种操作就叫内存序列化:如下图: 有序列化就有反序列化,要把文件里的东西再恢复成字典:eval把字符串变成字典. 但是上面 ...
- N卡控制面板把physx设置为cpu
一般笔记本官方配置独显都会强于核显,若是独显不够强这里教你一个小技巧来缓解独显的压力:N卡控制面板把physx设置为cpu,可以试试看.对于不强大的独显有点效果.
- 实验吧CTF题库-隐写术(部分)
Spamcarver 用kali下载图片 root@sch01ar:~# wget http://ctf5.shiyanbar.com/stega/spamcarver/spamcarver.jpg ...
- hadoop集群配置和在windows系统上运用java操作hdfs
安装 配置 概念 hadoop常用shell命令 使用java操作hadoop 本文介绍hadoop集群配置和在windows系统上运用java操作hdfs 安装 http://mirror.bit. ...