Java文件与io——缓冲流】的更多相关文章

对文件或其它目标频繁的读写操作,效率低,性能差. 使用缓冲流的好处,能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来. BufferedInputStream:为另一个输入流添加一些功能,在创建时,会创建一个内部缓冲区数组,用于缓冲数据 BufferedOutputStream:通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统 BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取…
打印流的主要功能是用于输出,在整个IO包中打印流分为两种类型: 字节打印流:PrintStream 字符打印流:PrintWriter 打印流可以很方便的进行输出 public class PrintStreamDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub byteStreamOut(); charStreamOut(); } //Pr…
Writer写入字符流的抽象类.对文件的操作使用:FileWriter类完成 Reader读取字符的抽象类. public class CharDemo { /** * @param args */ public static void main(String[] args) { // TODO 自动生成的方法存根 write(); read(); } //字符输出流 public static void write(){ File file=new File("c:\\b.txt")…
目录 IO缓冲流 缓冲流 基本原理 字节缓冲流 字符缓冲流 IO缓冲流 缓冲流也叫高效流,能够更高效的进行读取: 转换流:能够进行编码转换 序列化流:持久化存储对象 缓冲流 缓冲流--就是对应4个File**** 流的增强流 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,BufferedWriter 基本原理 缓冲流在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区的读写,减少系统IO次数,从…
使用try catch finally关闭文件流: 写入文件: import java.io.*; public class exp{ public static void main(String[] args) { //流要在try外面声明,不然finally里面找不到这个流 OutputStream file = null; try{ file = new FileOutputStream("iooooo.txt"); String str = "北邮\n";…
流的原理 1) 在 Java 程序中,对于数据的输入/输出操作以“流”(stream) 方式进行:2) J2SDK 提供了各种各样的“流”类,用以获取不同种类的数据:程序中通过标准的方法输入或输出数据.3) Java 的流类型一般位于 java.io 包中 IO流基本概念:----->https://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html 文件字节流 FileInputStream/FileOutputStream 使用 File…
字符缓冲流的特殊方法: A.BufferedWriter: public void newLine():根据系统来决定换行符 private static void write() throws IOException { //创建字符输出缓冲流 BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt")); for(int x = 0;x < 10 ; x++){ bw.write("java&quo…
字节流与字符流的区别 在所有的流操作里,字节永远是最基础的.任何基于字节的操作都是正确的.无论是文本文件还是二进制的文件. 如果确认流里面只有可打印的字符,包括英文的和各种国家的文字,也包括中文,那么可以考虑字符流.由于编码不同,多字节的字符可能占用多个字节.比如GBK的汉字就占用2个字节,而UTF-8的汉字就占用3个字节.所以,字符流是根据指定的编码,将1个或多个字节转化为java里面的unicode的字符,然后进行操作.字符操作一般使用Writer,Reader等,字节操作一般都是Input…
一.缓冲流 使用缓冲流后的输入输出流会先存储到缓冲区,等缓冲区满后一次性将缓冲区中的数据写入或取出. 避免程序频繁的和文件直接操作,这样操作有利于提高读写效率. 缓冲流是构建在输入输出流之上的,可以理解为是对基本输入输出流的增强和扩展,但其根本是建立在输入输出流之上的. 1.字节缓冲流 1.1字节缓冲流类 BufferInputStream BufferOutputStream 1.2.构造方法: 传递参数为输入.输出流对象. BufferedInputStream(InputStream in…
字节数组流 ByteArrayInputStream:包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪read方法要提供的下一个字节.关闭ByteArrayInputStream无效.此类中的方法在关闭此流后仍可被调用,而不会产生任何IOException. ByteArrayOutputStream:此类中实现了一个输出流.其中的数据被写入一个byte数组.缓冲区会随着数据的不断写入而自动增长.可使用toByteArray()和toString()获取数据.关闭ByteArra…
package com.io; import java.io.*; /** * 文件字符流的读取 * @author ganhang * */ public class FileReaderDemo { public static void read(){ File file =new File("1.txt"); try { FileReader fr=new FileReader(file); StringBuffer sb=new StringBuffer(); char []…
import java.io.File; import java.io.Writer; import java.util.StringTokenizer; import java.io.Reader; import java.io.FileWriter; import java.io.IOException; import java.io.FileReader; import java.io.BufferedReader; import java.io.BufferedWriter; publi…
为啥要使用NIO? NIO的创建目的是为了让JAVA程序员可以实现高速I/O而无需编写自定义的本机代码.NIO将最耗时的I/O操作(即填充和提取缓冲区)转移回操作系统,因而可以极大地提高速度 流与快的比较 原来的I/O库(在java.io.*中)与NIO最重要的区别是数据打包和传输的方式,原来的I/O以流的方式处理数据,而NIO以快的方式处理数据. 面向流的I/O系统一次一个字节地处理数据.一个输入流产生一个字节的数据,一个输出流消费一个字节的数据.不利的一面是,面向流的I/O通常相当慢. 一个…
//注意对象类要打标记实现Serializable接口 package com.gh; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.i…
输入流:只能从中读取数据,不能向其写入数据. InputStream,Reader 输出流:只能向其中写入数据,不能从中读取数据. OutputStream, Writer 输入流是相对于程序而言,外部传入数据给程序需要借助输入流. 输出流是相对程序而言的,程序把数据传输到外部需要借助输出流. 字符流主要是读取文本文件内容的,可以一个字符一个字符的读取,也可以一行一行的读取文本文件内容. 字节流读取单位为byte.byte作为计算机存储最基本单位,可以用字节流来读取很多其他格式的文件,比如图片视…
总结:这个结果竟然是对的.我错了. package com.da; //创建一个String对象的数组,然后执行读取文本,把文本每一行存入数组,它将读取到100行 //或直接到你按”stop“才停止,该例运用了一个BufferedReader类从控制台读取数据 import java.io.InputStreamReader; import java.io.*; public class SocketDemo { public static void main(String[] args) th…
RandomAccessFile是IO包的类,从Object直接继承而来.只可以对文件进行操作,可以对文件进行读取和写入.RandomAccessFile有强大的文件读写功能,其内部是大型byte[],可以通过seek(),getFilePointer()等方法操作的指针,方便对数据进行写入与读取,还可以对基本数据类型进行直接的读和写操作. RandomAccessFile的绝大多数功能,已经被JDK1.4的nio的"内存映射文件"给取代了. public class RandomAc…
FileOutputStream用于写入诸如图像数据之类的原始字节的流 字节输出流:OutputStream 此抽象类表示输出字节流的所有类的超类.(写) 字节输入流:InputStream(读) public class ByteStreamDemo { /** * @param args */ public static void main(String[] args) { // TODO 自动生成的方法存根 write(); //read(); } public static void w…
try{ InputStream is = new FileInputStream("abc.txt"); InputStreamReader ir = new InputStreamReader(is); BufferedReader br = new BufferedReader(ir); String line = null; List<String> list = new ArrayList<String>(); while((line = br.rea…
在计算机世界里,任何的文字都是以指定的编码方式存在的. 常见编码有:ISO8859-1.GBK/GB2312.unicode.UTF ISO8859-1:编码属于单字节编码,最多只能表示0-255的字符范围,主要在英文上应用 GBK/GB2312:中文的国际编码,专门用来表示汉字,是双字节编码 unicode:java中就是使用此编码方式,也是最标准的一种编码,是使用16进制表示的编码.但此编码不兼容                 ISO8859-1编码 UTF:由于unicode不支持ISO…
意图: 动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator模式相比于生成子类更为灵活.该模式以对客户端透明的方式扩展对象的功能. 适用环境 在不影响其他对象的情况下,以动态.透明的方式给单个对象添加职责. 处理那些可以撤销的职责. 当不能采用生成子类的方法进行扩充时.一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使的子类数目呈爆炸性增长.另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类. 涉及角色: 抽象组件:定义一个抽象接口,来规范准备附加功…
概念: File类:表示文件和目录路径名的抽象表示形式. File类可以实现文件的创建.删除.重命名.得到路径.创建时间等等,是唯一与文件本身有关的操作类. 例: public class FileDemo { /** * * @param target 目录文件夹 * @param ext 扩展名 */ //查找某个文件夹下的文件 public static void findFile(File target,String ext){ if(target!=null){ if(target.i…
[1] 程序设计 /*------------------------------- 1.缓冲流是一种处理流,用来加快节点流对文件操作的速度 2.BufferedInputStream:输入缓冲流 3.BufferedOutputStream:输出缓冲流 4.在正常的Java开发中都使用缓冲流来处理文件,因为这样可以提高文件处理的效率 5.这里设计程序:使用缓冲流复制一个较大的视频文件 --------------------------------*/ package pack04; impo…
package cn.zhozuohou; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import…
打开一个文本文件,另存为: Ansi就是系统默认编码(就是gbk) 建一个编码是utf-8的txt文件, 例: import java.io.FileWriter; import java.io.IOException; public class Demo01 { public static void main(String[] args) throws IOException { //确定目的地 FileWriter fw=new FileWriter("E:\\zyx\\java\\utf-…
day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据到文件 能够明确字符缓冲流的作用和基本用法 能够使用缓冲流的特殊功能 能够阐述编码表的意义 能够使用转换流读取指定编码的文本文件 能够使用转换流写入指定编码的文本文件 能够说出打印流的特点 能够使用序列化流写出对象到文件 能够使用反序列化流读取文件到程序中 02_缓冲流的原理.05_缓冲流的效率测试_复制文件 第一章 缓冲流 昨天学习了基本的一…
第八章.缓冲流 缓冲流概述 缓冲流,也叫高效流,是对4个基本的FileXxx流的增强.按照数据类型分为4类:   输入缓冲流 输出缓冲流 字节缓冲流 BufferedInputStream BufferedOutputStream 字符缓冲流 BufferedReader BufferedWriter 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写效率,如图: 字节缓冲输出流 BufferedOutputStream ja…
---恢复内容开始--- 字节流VS缓冲流 java.io包中的类大致可以分为:InputStream.OutputStream.Reader.Writer.InputStream/Reader可以理解为input from数据源,OutputStream/Writer可以理解为output to数据目的地.他们的前者处理的是字节,后者处理的是字符.而数据源则可能是来自硬盘上的文件.内存中的变量.网络的数据等等. 字节流:数据是以字节为单位进行读写操作 缓冲流:将一个一个的字节先存入到缓冲区中…
目录: 一.java io 概述 什么是IO? IO包括输入流和输出流,输入流指的是将数据以字符或者字节形式读取到内存 分为字符输入流和字符输入流 输入流指的是从内存读取到外界 ,分为字符输入流和字节输出流 Java IO即Java 输入输出系统.不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件.控制台.网络),我们还要考虑具体和它们的通信方式(顺序.随机.二进制.按字符.按字.按行等等…
缓冲流和正常流的使用大致相同,缓冲流效率更高. package day10_io_fileWrite_Read.buffer_stream; import java.io.*; /* * BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符.数组和字符串的高效写入. * BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取. */ public class BufferedStream { public static…