Java Io 字符流包含:

1. InputStreamReader  它是由byte流解析为char流,并且按照给定的编码解析。

2. OutputStreamWrite  它是char流到byte流的转换,并且按照给定的编码处理。

事例代码如下:

package com.dcz.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter; public class ReaderWriterDemo { public static void main(String[] args) throws Exception { InputStream fileInputStream = new FileInputStream("D:\\reader.txt");
// 编码为文本文件的自身的编码格式,否则乱码
InputStreamReader isr = new InputStreamReader(fileInputStream, "gbk"); File writeFile = new File("D:\\writer.txt");
if(!writeFile.exists()){
writeFile.createNewFile();
}
OutputStream fileOutputStream = new FileOutputStream(writeFile);
OutputStreamWriter osw = new OutputStreamWriter(fileOutputStream, "gbk"); /* int c;
while((c = isr.read()) != -1){
System.out.print((char)c);
}*/ char[] charer = new char[2 * 1024];
int c;
while((c = isr.read(charer, 0, charer.length)) != -1){
osw.write(charer, 0, charer.length);
fileOutputStream.flush();
}
osw.close();
isr.close();
} }

3. FileReader

4. FileWriter

这两个流读取文本文件会更方便

	public static void main(String[] args) throws IOException {

		FileReader fr = new FileReader("D:\\reader.txt");

		File writeFile = new File("D:\\writer.txt");
if(!writeFile.exists()){
writeFile.createNewFile();
}
FileWriter fw = new FileWriter(writeFile);
int c;
char[] charer = new char[2 * 1024];
while((c = fr.read(charer, 0, charer.length)) != -1){
fw.write(charer, 0, charer.length);
fw.flush();
}
fw.close();
fr.close();
}

5. BufferedReader

6. BufferedWriter

缓冲输入/输出流,该流可以一行一行读取,一行一样写入

package com.dcz.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer; public class BufferReaderWriterDemo { public static void main(String[] args) throws Exception { // 读取文件,可以一次读取一行文件
File readerFile = new File("D:\\reader.txt");
InputStream fis = new FileInputStream(readerFile);
Reader reader = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(reader); // 写入文件,可以一次写入一行文件
File writerFile = new File("D:\\writer.txt");
if(!writerFile.exists()){
writerFile.createNewFile();
}
OutputStream fos = new FileOutputStream(writerFile);
Writer writer = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(writer); String str = "";
while((str = br.readLine()) != null){
bw.write(str);
bw.newLine();
bw.flush();
}
bw.close();
br.close(); } }

Java Io 字符流的更多相关文章

  1. Java IO: 字符流的Buffered和Filter

    作者: Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com) 本章节将简要介绍缓冲与过滤相关的reader和writer,主要涉及BufferedReader.B ...

  2. Java IO: 字符流的Piped和CharArray

    作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本章节将简要介绍管道与字符数组相关的reader和writer,主要涉及PipedReader.Pip ...

  3. java IO字符流

    字节流:因为内存中数据都是字节,二进制数据. 字符流:方便处理文本数据.字符流是基于字节流的. ascii 编码表,并且各国都有自己的编码表. unicode码表,世界码表.优化后 utf-8码表. ...

  4. java -io字符流FileWrite操作演示

    FileWriter字符输出流演示: /* * FiileWriter 字符流的操作 * FileWriter 的构造方法 可传递 File类型 还可以传递String类型 * * 方法 : * wr ...

  5. Java IO 转换流 字节转字符流

    Java IO 转换流 字节转字符流 @author ixenos 字节流 输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| Fil ...

  6. Java IO 嵌套流、文本的输入输出和存储

    Java IO 嵌套流.文本的输入输出和存储 @author ixenos 1.   组合流过滤器(嵌套流) a)    跨平台文件分割符:常量字符串 java.io.File.seperator 等 ...

  7. Java IO 节点流 ByteArrayInput/OutputStream

    Java IO 节点流 ByteArrayInput/OutputStream @author ixenos ByteArrayInputStream 包含一个内部缓冲区(字节数组byte[]),该缓 ...

  8. 理解Java中字符流与字节流

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可 ...

  9. 理解Java中字符流与字节流的区别(转)

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...

随机推荐

  1. Nginx系列4之基础配置

    preface 公司跑得大多数是LNMP平台,所以借此机会多多了解下Nginx.下面主要说说Nginx下面几点: 防盗链 日志切割 负载均衡 虚拟主机 location匹配解释 substatus状态 ...

  2. java编程思想-复用类总结

    今天继续读<java 编程思想>,读到了复用类一章,看到总结写的很好,现贴上来,给大家分享. 继承和组合都能从现有类型生成新类型.组合一般是将现有类型作为新类型底层实现的一部分来加以复用, ...

  3. 生成秘钥文件 sn.exe(Strong Name Tool)

    Visual Studio 内置 Strong Name Tool, 我们直接运行"VS开发人员命令提示"就可以生成秘钥文件. 秘钥文件包含公钥和私钥. 来看这个例子: 在文件夹下 ...

  4. js020-JSON

    js020-JSON 20.1 语法 JSON的语法可以表示为一下三种类型的值. 简单值 使用与JS相同的语法,可以在JSON中表示字符串.数值.布尔值和null,但是JSON不支持JS中的特殊性Un ...

  5. nodejs安装及环境配置(windows系统)

    作为服务端运行javascript的平台的NodeJs,把前台javascript移到了服务器端,Google V8引擎使其运行效率非常高,它可以异步,无任何阻塞运行程序.nodejs包含http服务 ...

  6. mysql5.7.11编译安装以及修改root密码小结

    系统是cenos6.7 64位的,默认mysql5.7.11下载到/usr/local/src,安装目录在/app/local/mysql目录下,mysql数据放置目录/app/local/data. ...

  7. 9月23日JavaScript作业----两个列表之间移动数据

    作业一:两个列表之间数据从一个列表移动到另一个列表 <div style="width:600px; height:500px; margin-top:20px"> & ...

  8. 9月19日上午JavaScript数组

    数组 一.定义 1.数组的文字定义 广义上说,数组是相同类型数据的集合.但是对于强类型语言和弱类型语言来说其特点是不一样的.强类型语言数组和集合有以下特点. 数组强类型语言:1.数组里面只能存放相同数 ...

  9. ast模块

    有这么一个需求,你想从文件中读取字典,方法有很多,这里用的是ast模块 import ast with open("account","r",encoding= ...

  10. My VA Snippet

    My VA snippet Visual Assist X 是一款比较好用的编码辅助工具, 这款工具可以大大提高程序员的编码速度和开发效率.同时在它的指引下可以有效避免低级Bug. 真正实现快速编码, ...