字符流:尽管字节流提供了处理任何类型输入/输出操作的足够功能,它们补鞥呢直接操作Unicode字符。字符流层次结构的顶层是Reader和Writer抽象类。类似于InputStream和OutputStram

Unicode使用两个字节来表示一个字符,即一个字符占16位

一、Reader的类层次结构

二、Writer的类层次结构

三、Demo

public class StreamTest {

	public static void main(String[] args)  throws Exception{
FileOutputStream fos = new FileOutputStream("D:/temp/file.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos); BufferedWriter bw = new BufferedWriter(osw); bw.write("http://www.baidu.com");
bw.newLine();
bw.write("http://www.googlo.com");
bw.close(); FileInputStream fis = new FileInputStream("D:/temp/file.txt"); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); String str = null;
while ((str = br.readLine() ) != null) {
System.out.println(str); } br.close(); }
}

  文本的内容

打印出的输出

四、Demo2 标准输入设备

//标准输入设备
public class StreamTest2 { public static void main(String[] args) throws Exception{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String str ;
while (null != (str = br.readLine())) {
System.out.println(str); }
br.close(); }
}

  显示效果

五、FileReader使用,

从一个文件逐行读取帮把它输出到标准输出流。

public class FileReader1 {

	public static void main(String[] args) throws Exception{
FileReader fr = new FileReader("D:/temp/hello.txt");
BufferedReader br = new BufferedReader(fr);
String str ;
while((str = br.readLine()) != null ){
System.out.println(str);
}
br.close(); }
}

  

FileWriter使用

public class FileWriter1 {
public static void main(String[] args) throws Exception { String str = "hello world , Hello world";
char[] buffer = new char[str.length()];
str.getChars(0, str.length(), buffer, 0); FileWriter fw = new FileWriter("D:/temp/fileWrite.txt");
BufferedWriter bw = new BufferedWriter(fw);
for(int i = 0; i < buffer.length ; i++){
bw.write(buffer[i]);
}
bw.close(); }
}

  写入结果

六、CharArrayReader使用

public class charArrayReader1 {

	public static void main(String[] args) throws Exception{
String tmp = "hello world, HI";
char[] ch = new char[tmp.length()];
tmp.getChars(0, tmp.length(), ch, 0); CharArrayReader fr = new CharArrayReader(ch);
BufferedReader br = new BufferedReader(fr);
String str ;
while((str = br.readLine()) != null ){
System.out.println(str);
}
br.close(); }
}

  

Java IO系统--字符流的更多相关文章

  1. Java IO: 其他字符流(下)

    作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的PushbackReader,LineNumberReader,St ...

  2. Java IO之字符流和文件

    前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字 ...

  3. [Java IO]03_字符流

    Java程序中,一个字符等于两个字节. Reader 和 Writer 两个就是专门用于操作字符流的类. Writer Writer是一个字符流的抽象类.  它的定义如下: public abstra ...

  4. java IO之 字符流 (字符流 = 字节流 + 编码表) 装饰器模式

    字符流 计算机并不区分二进制文件与文本文件.所有的文件都是以二进制形式来存储的,因此, 从本质上说,所有的文件都是二进制文件.所以字符流是建立在字节流之上的,它能够提供字符 层次的编码和解码.列如,在 ...

  5. Java——IO类 字符流概述

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  6. Java IO编程——字符流与字节流

    在java.io包里面File类是唯一 一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能够操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操作.而对于程序而 ...

  7. Java IO(四--字符流基本使用

    在上一节,介绍了字节流的基本使用,本节介绍一下字符流的使用 Reader: public abstract class Reader implements Readable, Closeable { ...

  8. Java IO之字符流

    public static void main(String[] args) { FileWriter fw = null; try { fw = new FileWriter("/User ...

  9. java字节流和字符流,以及java文件操作

    A.首先说字节流:1.字节流在操作的时候不会用到缓冲区(也就是内存)2.字节流可用于任何类型的对象,包括二进制对象3.字节流处理单元为1个字节,操作字节和字节数组.InputStream是所有字节输入 ...

随机推荐

  1. 学习python的日常6

    错误.调试和测试: 错误处理: try: print('try...') r = 10 / 0 print('result:', r) except ZeroDivisionError as e: p ...

  2. mqtt服务搭建(emqx,原emq)

    系统环境: ubuntu 18.04server lts 目标系统IP地址(可访问):192.168.1.31 emqx版本: v3.2.3 打开网页,根据目标系统和emqx版本选择好安装包.这里我选 ...

  3. Linux常用时间函数

    time()函数: NAME time - get time in seconds SYNOPSIS #include <time.h> time_t time(time_t *tloc) ...

  4. mysql字典取值,列表包含

    SELECT * FROM e where JSON_CONTAINS(json_extract(scope_detail, '$.shop'), '001');

  5. 神经网络学习中的损失函数及mini-batch学习

    # 损失函数(loss function).这个损失函数可以使用任意函数,# 但一般用均方误差(mean squared error)和交叉熵误差(cross entropy error)等一切都在代 ...

  6. 《基于 Java EE 的高校重修管理系统设计与实现》论文笔记(九)

    标题:基于 Java EE 的高校重修管理系统设计与实现 一.基本信息 时间:2015 来源:河海大学文天学院 关键词::Java EE 架构: B/S 模式: 重修管理系统 二.研究内容 1.需求分 ...

  7. LG5487 【模板】线性递推+BM算法

    [模板]线性递推+BM算法 给出一个数列 \(P\) 从 \(0\) 开始的前 \(n\) 项,求序列 \(P\) 在\(\bmod~998244353\) 下的最短线性递推式,并在 \(\bmod~ ...

  8. c# 数据类型转换

    隐式转换 byte, short, int, long, fload, double等根据其顺序向后可以隐式自动完成类型的转换,隐式转移的前提是目标类型精度高于源类型,如:short隐式转换为int, ...

  9. 行为型模式(一) 模板方法模式(Template Method)

    一.动机(Motivate) "模板方法",就是有一个方法包含了一个模板,这个模板是一个算法.在我们的现实生活中有很多例子可以拿来说明这个模式,就拿吃饺子这个事情来说,要想吃到饺子 ...

  10. Django REST framework认证权限和限制 源码分析

    1.首先 我们进入这个initial()里面看下他内部是怎么实现的. 2.我们进入里面看到他实现了3个方法,一个认证,权限频率 3.我们首先看下认证组件发生了什么 权限: 啥都没返回,self.per ...