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. [转帖]TLS1.3 正式版发布 — 特性与开启方式科普

    https://cloud.tencent.com/developer/article/1376033 互联网工程指导委员会(IETF)释出了传输层安全性协议的最新版本 TLS 1.3.TLS 被广泛 ...

  2. [转帖]create table INITRANS参数分析

    https://www.modb.pro/db/44701 1. 内容介绍 Oracle数据库create table时使用INITRANS参数设置数据块ITL事务槽的数量,确保该数据块上 并发事务数 ...

  3. [转帖]如何使用 minio 进行 BR 备份

    https://tidb.net/blog/ada69456#5.%20%E4%BD%BF%E7%94%A8%20minio%20%E8%BF%9B%E8%A1%8C%20BR%20%E5%A4%87 ...

  4. Linux的free命令与OOM的简单总结

    简介 查看操作系统配置最关键的几个命令是 lscpu 查看CPU信息 以及free 查看内存信息. 不过free信息有一个疑惑点 他的 free的值可能很小. 会让搭建产生误解. 这里简单说明一下. ...

  5. PG数据库恢复简单记录

    公司同事给了一个很小的数据 我这边进行备份和恢复操作 第一步 创建数据库 su - postgres #进入pg数据库的用户 psql #输入密码 登录 create user demo with p ...

  6. Python 潮流周刊第 37 期(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  7. [LeetCode刷题记录]113 路径总和 II

    题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 难度 中等 题解 采用深度搜索优先,遍历每条从根节点到叶子节点的 ...

  8. c++基础之函数

    距离上次更新又过了一周,又该更新新的读书笔记了.本次更新的主要是c++中函数部分的内容 c++ 中的函数与c语言中的函数大致用法或者语法是一样的,这里就不就这点详细展开了.需要注意的是c/c++中并没 ...

  9. Python 运用zabbix开发简易巡检工具

    利用SSH或者Zabbix监控,配合Django开发框架,改造出属于自己的监控平台,实现包括主机图形,自动发现,计划任务,批量cmd执行,服务监控,日志监控等功能,由于公司机器混乱,基本上市面上的所有 ...

  10. 驱动开发:Win10枚举完整SSDT地址表

    在前面的博文<驱动开发:Win10内核枚举SSDT表基址>中已经教大家如何寻找SSDT表基地址了,找到后我们可根据序号获取到指定SSDT函数的原始地址,而如果需要输出所有SSDT表信息,则 ...