Java IO-3 转换流和缓冲流

1.转换流

OutputStreamWriter和InputStreamReader

 1 package demo04;
 2
 3 import java.io.FileInputStream;
 4 import java.io.IOException;
 5 import java.io.InputStreamReader;
 6
 7 public class InputStreamReaderDemo {
 8     public static void main(String[] args) throws IOException {
 9         FileInputStream in = new FileInputStream("c:\\gbk.txt");
10         InputStreamReader r = new InputStreamReader(in);
11         char[] ch = new char[1024];
12         int len = r.read(ch);
13         System.out.println(new String(ch, 0, len));
14         r.close();
15     }
16 }
 1 package demo04;
 2
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5 import java.io.OutputStreamWriter;
 6
 7 public class OutputStreamWriterDemo {
 8     public static void main(String[] args) throws IOException {
 9         FileOutputStream out = new FileOutputStream("c:\\utf8.txt");
10         //默认GBK编码 占4个字节
11         //OutputStreamWriter os = new OutputStreamWriter(out);
12         //UTF-8编码  占6个字节
13         OutputStreamWriter os = new OutputStreamWriter(out, "UTF-8");
14         os.write("你好");
15         os.close();
16     }
17 }

2.字节缓冲流

分为BufferedInputStream和BufferedOutputStream, 它们的构造方法分别接受InputStream和OutputStream类型的参数作为被包装对象, 在读写数据时提供缓冲功能

 1 package demo04;
 2
 3 import java.io.BufferedInputStream;
 4 import java.io.FileInputStream;
 5 import java.io.IOException;
 6
 7 public class BufferedInputStreamDemo {
 8     public static void main(String[] args) throws IOException {
 9         BufferedInputStream ins = new BufferedInputStream(new FileInputStream("c:\\buffer.txt"));
10         byte[] bytes = new byte[20];
11         int len = 0;
12         while ((len = ins.read(bytes)) != -1 ) {
13             System.out.println(new String(bytes, 0, len));
14         }
15         ins.close();
16     }
17 }
 1 package demo04;
 2
 3 import java.io.BufferedOutputStream;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6
 7 public class BufferedOutputStreamDemo {
 8     public static void main(String[] args) throws IOException {
 9         FileOutputStream out = new FileOutputStream("c:\\buffer.txt");
10         BufferedOutputStream buf = new BufferedOutputStream(out);
11         buf.write(100);
12         buf.close();
13     }
14 }

3.字符缓冲流

分为BufferedWriter和BufferedReader

 1 package demo04;
 2
 3 import java.io.BufferedReader;
 4 import java.io.FileReader;
 5 import java.io.IOException;
 6
 7 public class BufferedReaderDemo {
 8     public static void main(String[] args) throws IOException {
 9         BufferedReader bfr = new BufferedReader(new FileReader("c:\\reader.txt"));
10         String line = null;
11         while ((line = bfr.readLine()) != null) {
12             System.out.println(line);
13         }
14         bfr.close();
15     }
16 }
 1 package demo04;
 2
 3 import java.io.BufferedWriter;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6
 7 public class BufferedWriterDemo {
 8     public static void main(String[] args) throws IOException {
 9         FileWriter fw = new FileWriter("c:\\buffer.txt");
10         BufferedWriter bfw  = new BufferedWriter(fw);
11         bfw.write(100);
12         bfw.flush();
13
14         bfw.write("你好".toCharArray());
15         bfw.flush();
16
17         //换行 与平台无关
18         bfw.newLine();
19         bfw.write("你好".toCharArray());
20         bfw.flush();
21
22         bfw.close();
23     }
24 }
时间: 2024-10-09 11:53:56

Java IO-3 转换流和缓冲流的相关文章

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-字符

【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]

J2SE知识点归纳笔记(七)---Java IO Part 4:基本字符流

J2SE知识点归纳笔记(七)---Java IO Part 4:基本字符流                                                                 --转载请注明出处:coder-pig 本节引言: 上一节中,我们对于Java IO流中的一些基本字节流进行了学习,他们都是InputStream与 OutputStream的子类;本节学习的字符流则是Reader与Writer的子类,好了,话不多说, 开始本节内容! 本节正文: 1.Reade

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

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

IO流之缓冲流

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

转换流和缓冲流

1. 转换流(把字符流转成了字节流所以是桥梁):OutputStreamWriter;是字符输出流;先用FileOutputStream确定要写入的地址;然后再用转换流抓取要写入的地址和码表 2.InputStreamReader:是FileReader的父类并且是它的转换流 3.InputStreamReader和OutputStreamWriter的转换原理(字节流+码表) 4.字符转成字节后再写入:明确目的地:FileOutputStream fos=new FileOutputStrea

处理流之缓冲流 buffered

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