转换流和缓冲流

1. 转换流(把字符流转成了字节流所以是桥梁):OutputStreamWriter;是字符输出流;先用FileOutputStream确定要写入的地址;然后再用转换流抓取要写入的地址和码表
2.InputStreamReader:是FileReader的父类并且是它的转换流
3.InputStreamReader和OutputStreamWriter的转换原理(字节流+码表)
4.字符转成字节后再写入:明确目的地:FileOutputStream fos=new FileOutputStream("地址");
创建转换流对象(括号里面传的是字节流对象和码表,这里起到写入的还是字节流对象,转换流只是借用码表进行了翻译):OutputStreamWriter osw=new OutputStreamWriter (fos,utf-8);
osw.writer("写入的内容")这里虽然是转换流对象ows调用的.write()方法但实际上还是字节流调用的.writer()方法进行写入
osw.close;
写入转换流:先new一个字节流对象确定要写入的地址FileOutputWriter,再确定转换流对象确定码表并把字节流对象一起传递,OutputStreamWriter(字节对象,码表)
然后再用转换流对象调用.writer()方法,这里虽然是转换流对象调用写入方法但实际上还是字节流调用的.writer(),最后关闭资源,直接关闭转换流对象就行,字节流跟随转换流对象 一起关闭
5.读取转换流:明确数据源,要读取的地址:FileInputStream fis=new FileInputStream("读取的地址");
创建读取转换流对象:InputStreamReader isr=new InputStreamReader(fis,utf-8); 创建char数组确定一次要读取的个数char ch=new char[1024];确定判定变量:int len=0;
开始读取:while((len=isr.read())!=-1){system.out.println(new String(ch,0,len))} iso.cloese();
缓冲流:字节缓冲流:写入字节缓冲流:BufferedOutputStream;读取字节缓冲流:BufferedInputStream;
单个字节复制:FileOutputStream fos=new FileOutputStream("地址");FileInputStream fis=new FileInputStream("地址");
int len=0;whlie((len=fis.read())!=-1){fos.writer(len)};fis.cloes()‘fos.close();
单个字节缓冲流复制
FileOutputStream fos=new FileOutputStream("地址");FileInputStream fis=new FileInputStream("地址");
BufferedOutputStream bos=new BufferedOutputStream (fos); BufferedInputStream bis=new BufferedInputStream(fis);
int len=0;while((len=bis.read())!=-1){bos.write(len)};bos.close();bis.close();
一个字节数组复制:
FileOutputStream fos=new FileOutputStream(地址); FileInputStream fis=new FileInputStream("地址")
int len=0;byte[] bytes=new byte[1024];while((len=fis.read(bytes))!=-1){fos.write(bytes,0,len)};fis.close();fos.close();
缓冲流一个字节数组复制:
FileOutputStream fos=new FileOutputStream("地址") FileInputStream fis=new FileInputStream("地址")\
BufferedOutputStream bos=new BufferedOutputStream(fos);BufferedInputStream bis=new BufferedInputStream(fis);
int len=0;byte[] bytes=new byte[1024]; while((len=bis.read(bytes))!=-1){bos.write(bytes,0,len)}bis.close();bos.close();
缓冲流:字符缓冲流:
1.单个字符复制:FileWriter fw=new FileWriter("地址");FileReader fr=new FileReader("地址"); int len=0;while((len=fr.read())!=-1){fw.writer(len),fw.flush()}
2.缓冲流单个字节复制:FileWriter fw=new FileWriter("地址");FileReader fr=new FileReader("地址");BufferedWriter bw=new BufferedWriter(fw);
BufferedReader br=new BufferedReader(fr);String line=null;while((line=br,readline())!=null){bw.write(line);br.newline();br.flush()}br.close();bw.close();
3.一个字节数组复制:FileWriter fw=new FileWriter("地址");FileReader fr=new FileReader("地址");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();
4.缓冲流一个字节数组复制:FileWriter fw=new FileWriter("地址");FileReader fr=new FileReader("地址");BufferedWriter bw=new BufferedWriter(fw);
BufferedReader br=new BufferedReader(fr);String line=null;char ch=new char[1024];while((line=br.read(ch))!=-1){bw.write(ch,0,len);bw.flush();};br.close();

原文地址:https://www.cnblogs.com/hankai2735/p/11438797.html

时间: 2024-11-06 07:47:50

转换流和缓冲流的相关文章

IO流----转换流、缓冲流

打开一个文本文件,另存为: 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-

Java转换流、缓冲流、流的操作规律和properties类整理

转换流 1.1                OutputStreamWriter类 OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节.它的作用的就是,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去. package com.oracle.reader; public class Demo04 { public static void main(String[] args) throws IOException

java的 IO流之缓冲流(转载)

java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装.当对文件或其他目标频繁读写或操作效率低,效能差.这时使用缓冲流能够更高效的读写信息.因为缓冲流先将数据缓存起来,然后一起写入或读取出来.所以说,缓冲流还是很重要的,在IO操作时记得加上缓冲流提升性能. 缓冲流分为字节和字符缓冲流 字节缓冲流为: BufferedInputStream-字节输入缓冲流 BufferedOutputStream-字节输出缓冲流 字符缓冲流为: BufferedReader-字符

处理流之缓冲流 buffered

处理流是包在别的流上面的流,相当于包在别的管道上面的管道.(节点流是直接怼在数据源上的流) 缓冲流:缓冲流相当于自带小桶,对读写数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法.BufferedReader提供了一个一次读取一行的方法 readLine(),BufferedWriter提供了写入一个行分隔符的方法 newLine() BufferedReader(Reader in) (Reader in ,int size) BufferedWriter(Writer out)

【java的 IO流之缓冲流】

java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装.当对文件或其他目标频繁读写或操作效率低,效能差.这时使用缓冲流能够更高效的读写信息.因为缓冲流先将数据缓存起来,然后一起写入或读取出来.所以说,缓冲流还是很重要的,在IO操作时记得加上缓冲流提升性能. 缓冲流分为字节和字符缓冲流 字节缓冲流为: BufferedInputStream-字节输入缓冲流 BufferedOutputStream-字节输出缓冲流 字符缓冲流为: BufferedReader-字符

Java IO 过滤流 字节缓冲流 BufferedInput/OutputStream

Java IO 过滤流 字节缓冲流 BufferedInput/OutputStream @author ixenos 概念 BufferedInput/OutputStream是实现缓存的过滤流,他们分别是FilterInput/OutputStream的子类. BufferedInputStream工作流程 stream-->buf--read buf-->I 1.当一个BufferedInputStream被创建时,一个内部的缓冲区 byte[] buf = new byte[size]

JAVA输入/输出流(字节流、字符流、缓冲流)

JAVA输入/输出流 前期知识准备 1.基本java语法 基本原理: 程序在运行期间,可能需要从外部的存储媒介或其他程序中读入所需要的数据,这就需要使用输入流对象.输入流的指向称作它的源,程序从指向源的输入流中读取源中数据.另一方面,程序在处理数据后,可能需要将处理结果写入到永久的存储媒介中或传给其他应用程序,这就需要使用输出流对象.输出流的指向称作它的目的地,程序通过向输出流中写入数据把数据传送到目的地. (本博文只给出文件字节流,文件字符流,缓冲流实例) 文件字节流: FileInputSt

IO流之缓冲流

缓冲流 Java中提高了一套缓冲流,它的存在,可提高IO流的读写速度 缓冲流,根据流的分类字节缓冲流与字符缓冲流. 字节缓冲流 字节缓冲流根据流的方向,共有2个 l  写入数据到流中,字节缓冲输出流 BufferedOutputStream l  读取流中的数据,字节缓冲输入流 BufferedInputStream 它们的内部都包含了一个缓冲区,通过缓冲区读写,就可以提高了IO流的读写速度 字节缓冲输出流BufferedOutputStream 通过字节缓冲流,进行文件的读写操作 写数据到文件

重要的几种流:文件流、缓冲流、转换流!

一.文件流(字节流,字符流) 1.字节流 package com.zijie; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class TestFileInputStream { public static void main(String[] args) { int b = 0; FileInputStream in = null