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 ...
随机推荐
- POJ1961:Period
浅谈\(KMP\):https://www.cnblogs.com/AKMer/p/10438148.html 题目传送门:http://poj.org/problem?id=1961 根据研究发现, ...
- MySQL-5.7中InnoDB表数据文件存储位置
学习地址:https://www.cnblogs.com/tongxiaoda/p/7874535.html
- Server Error in '/' Application. IIS拒绝访问
昨天将改好的网站重写发布更新了一下,就出现这种问题.那是一个头两个大呀. 刚开始以为是文件夹没有IIS的访问权限,在网上找的好多答案都是temp文件夹没有权限,,但将IIS的权限都加上后,还是不行,同 ...
- MySQL error : Deadlock found when trying to get lock; try restarting transaction
在使用 MySQL 时,我们有时会遇到这样的报错:“Deadlock found when trying to get lock; try restarting transaction”. 在 14. ...
- Oracle 2套rac集群指向单机多实例的复制搭建
Oracle 2套rac集群指向单机多实例的复制搭建 由于环境限制,现在需要把2套rac集群通过dg复制指向远端的单机多实例上面. rac指向第一个实例的前面已经有文档 这里直接添加第二个实例的复制搭 ...
- mysql 无意重启 [Note] /usr/sbin/mysqld: Normal shutdown
情况: 今早发现,昨天下午安装的4台mysql服务器,突然出现,由于在shell窗口 (root@localhost:mysql.sock) [(none)]> 190102 18:12:16 ...
- sysfs文件系统
3 sysfs文件系统 sysfs是一个基于内存的文件系统,它的作用是将内核信息以文件的方式提供给用户程序使用.该文件系统的目录层次结构严格按照内核的数据结构组织.除了二进制文件外(只有特殊场合才使用 ...
- C Primer Plus学习笔记(十一)- 存储类别、链接和内存管理
存储类别 从硬件方面来看,被储存的每个值都占用一定的物理内存,C 语言把这样的一块内存称为对象(object) 对象可以储存一个或多个值.一个对象可能并未储存实际的值,但是它在储存适当的值时一定具有相 ...
- vs2010一运行就报错deven.exe assert failure 解决方法,卸载系统中.netFramework最新版本的(简体中文)
vs2010一运行就报错deven.exe assert failure 解决方法,卸载系统中.netFramework最新版本的(简体中文)
- leetcode318
public class Solution { public int MaxProduct(string[] words) { ) { ; } int len = words.Length; int[ ...