OutputStreamWriter类

OutputStreamWriter是字符流到字节流的桥梁,字符写入其中后被指定字符集成字节。

字符集可自定义,或使用平台默认字符集。

推荐使用BufferedWriter包装OutputStreamWriter以减少频繁的转换调用,例如:

Writer out
= new BufferedWriter(new OutputStreamWriter(System.out));

类定义

public class OutputStreamWriter
extends Writer

构造函数

OutputStreamWriter(OutputStream out)

Creates an OutputStreamWriter that uses the default character encoding.
OutputStreamWriter(OutputStream out, Charset cs)

Creates an OutputStreamWriter that uses the given charset.
OutputStreamWriter(OutputStream out, CharsetEncoder enc)

Creates an OutputStreamWriter that uses the given charset encoder.
OutputStreamWriter(OutputStream out, String charsetName)

Creates an OutputStreamWriter that uses the named charset.

方法

void

close() 先flush后关闭

void flush() 冲刷流
String getEncoding() 返回流使用的字符集名称
void write(char[] cbuf, int off, int len) 写部分字符数组
void write(int c) 写单个字符
void write(String str, int off, int len) 写部分字符串

例子

package com.dylan.io;

import java.io.*;

/**
* @author xusucheng
* @create 2018-01-13
**/
public class OutputStreamWriterDemo {
public static void main(String[] args) throws IOException{
OutputStream w = new FileOutputStream("D:\\testout.txt");
OutputStreamWriter osw = new OutputStreamWriter(w,"GBK");
BufferedWriter bw = new BufferedWriter(osw);
bw.write("欢迎学习java.io");
bw.flush();
bw.close();
System.out.println("写入完成!");
}
}

InputStreamReader类

InputStreamReader是字节流到字符流的桥梁,它读取字节并使用指定的字符集解码称字符。

字符集可自定义,或使用平台默认字符集。

推荐使用BufferedReader包装InputStreamReader以减少频繁的转换调用,例如:

BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));

类定义

public class InputStreamReader
extends Reader

构造函数

InputStreamReader(InputStream in)

Creates an InputStreamReader that uses the default charset.
InputStreamReader(InputStream in, Charset cs)

Creates an InputStreamReader that uses the given charset.
InputStreamReader(InputStream in, CharsetDecoder dec)

Creates an InputStreamReader that uses the given charset decoder.
InputStreamReader(InputStream in, String charsetName)

Creates an InputStreamReader that uses the named charset.

方法

void close() 
关闭流并释放与其相关资源
String getEncoding()
返回流使用的字符集名称
int read()
读取单个字符
int read(char[] cbuf, int offset, int length)
读取部分字符数组
boolean ready()

判断流是否准备好

例子

package com.dylan.io;

import java.io.*;

/**
* @author xusucheng
* @create 2018-01-13
**/
public class InputStreamReaderDemo {
public static void main(String[] args) throws IOException{
InputStream r = new FileInputStream("D:\\testout.txt");
InputStreamReader isr = new InputStreamReader(r,"GBK");
BufferedReader br = new BufferedReader(isr); if (br.ready()) {
String content;
while ((content = br.readLine()) != null) {
System.out.println(content);
}
} br.close();
}
}

Java I/O 教程(十二) OutputStreamWriter和InputStreamReader的更多相关文章

  1. 201521123072《java程序设计》第十二周学习总结

    201521123072<java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象 ...

  2. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  3. 无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two]

    无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two] extjs技术交流,欢迎加群(201926085) 不管是几级下拉列表的联动实现本质上都是根据某个下拉列表的变化,去动态加载其 ...

  4. 201521123061 《Java程序设计》第十二周学习总结

    201521123061 <Java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对 ...

  5. 201521123038 《Java程序设计》 第十二周学习总结

    201521123038 <Java程序设计> 第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student ...

  6. 201521123122 《java程序设计》第十二周学习总结

    ## 201521123122 <java程序设计>第十二周实验总结 ## 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将St ...

  7. JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口

    JAVA之旅(十二)--Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口 开始挑战一些难度了,线程和I/O方面的操作了,继续坚持 一. ...

  8. webpack4 系列教程(十二):处理第三方JavaScript库

    教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<webpack4 系列教程(十二):处理第三方 JavaScript 库>原文地址.或者来我的小站看更多内容:godbm ...

  9. Java NIO系列教程(二) Channel通道介绍及FileChannel详解

    目录: <Java NIO系列教程(二) Channel> <Java NIO系列教程(三) Channel之Socket通道> Channel是一个通道,可以通过它读取和写入 ...

  10. “全栈2019”Java多线程第三十二章:显式锁Lock等待唤醒机制详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

随机推荐

  1. [转帖]shell 把以空格分隔的变量 分割后的每个字段赋值给变量

    比如我有一个变量 "123 456 789",要求以空格为分隔符把这个变量分隔,并把分隔后的字段分别赋值给变量,即a=123:b=456:c=789 共有3中方法: 法一:先定义一 ...

  2. [转帖]KingbaseES和Oracle数据类型的映射表

    随着数据库国产化的进程,Oracle向KingbaseES数据库的数据迁移需求也越来越多.数据库之间数据迁移的时候,首先遇到的,并且也是最重要的,就是数据类型之间的转换. 下表为KingbaseES和 ...

  3. [转帖]unmatched(riscv64)上编译,安装和移植SPEC CPU 2006

    https://zhuanlan.zhihu.com/p/429399630 Linux ubuntu 5.11.0-1021-generic #22-Ubuntu SMP Tue Sep 28 15 ...

  4. [转帖]VMware ESXi 各版本号对照表

    本博文转自以下链接: VMware ESXi Release and Build Number History | virten.net vSphere ESXi 7.0 Name Patch Dat ...

  5. vCenter 宕机后证书续期处理

    vCenter 宕机后证书续期处理 背景 最近护网, 我司被选中作为防守方 因为发现一个vCenter控制台出现异常访问, 被管理员强行断网. 因为是周六的事情,当时自己也没太在意,想着工作日添加网络 ...

  6. [转帖]一个故事看懂CPU的TLB

    https://www.cnblogs.com/xuanyuan/p/15347054.html Hi,我是CPU一号车间的阿Q,还记得我吗,真是好久不见了- 我所在的CPU是一个八核CPU,就有八个 ...

  7. jcmd的简单总结

    jcmd的简单总结 背景 自从2019年公司转向java技术路线. 一直断断续续的在学习java相关的技术内容. 但是总感觉学的不是很深入. 这周比较累.也不想在学新东西了. 所以想着再总结一下jcm ...

  8. [转帖]Linux后门的几种姿势

      转载自 https://evilanne.github.io/2017/08/26/Linux后门-持续关注/ 在一次渗透中,成功获取某目标几台比较重要的机器,当时只想着获取脱库,结果动静太大被发 ...

  9. 分析fastcache和freecache(一)

    分析fastcache和freecache(一) fastcache和freecache是两个比较简单的缓存实现,下面分析一下各自的实现,并学习一下其实现中比较好的方式. fastcache 概述 f ...

  10. Linux bridge使用dummy接口调用IPVS的问题

    Linux bridge使用dummy接口调用IPVS的问题 在IPVS: How Kubernetes Services Direct Traffic to Pods一文中,作者给出了一个简单的组网 ...