Java I/O 教程(十二) OutputStreamWriter和InputStreamReader
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 |
|
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的更多相关文章
- 201521123072《java程序设计》第十二周学习总结
201521123072<java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象 ...
- CRL快速开发框架系列教程十二(MongoDB支持)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- 无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two]
无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two] extjs技术交流,欢迎加群(201926085) 不管是几级下拉列表的联动实现本质上都是根据某个下拉列表的变化,去动态加载其 ...
- 201521123061 《Java程序设计》第十二周学习总结
201521123061 <Java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对 ...
- 201521123038 《Java程序设计》 第十二周学习总结
201521123038 <Java程序设计> 第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student ...
- 201521123122 《java程序设计》第十二周学习总结
## 201521123122 <java程序设计>第十二周实验总结 ## 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将St ...
- JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口
JAVA之旅(十二)--Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口 开始挑战一些难度了,线程和I/O方面的操作了,继续坚持 一. ...
- webpack4 系列教程(十二):处理第三方JavaScript库
教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<webpack4 系列教程(十二):处理第三方 JavaScript 库>原文地址.或者来我的小站看更多内容:godbm ...
- Java NIO系列教程(二) Channel通道介绍及FileChannel详解
目录: <Java NIO系列教程(二) Channel> <Java NIO系列教程(三) Channel之Socket通道> Channel是一个通道,可以通过它读取和写入 ...
- “全栈2019”Java多线程第三十二章:显式锁Lock等待唤醒机制详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
随机推荐
- [转帖]shell 把以空格分隔的变量 分割后的每个字段赋值给变量
比如我有一个变量 "123 456 789",要求以空格为分隔符把这个变量分隔,并把分隔后的字段分别赋值给变量,即a=123:b=456:c=789 共有3中方法: 法一:先定义一 ...
- [转帖]KingbaseES和Oracle数据类型的映射表
随着数据库国产化的进程,Oracle向KingbaseES数据库的数据迁移需求也越来越多.数据库之间数据迁移的时候,首先遇到的,并且也是最重要的,就是数据类型之间的转换. 下表为KingbaseES和 ...
- [转帖]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 ...
- [转帖]VMware ESXi 各版本号对照表
本博文转自以下链接: VMware ESXi Release and Build Number History | virten.net vSphere ESXi 7.0 Name Patch Dat ...
- vCenter 宕机后证书续期处理
vCenter 宕机后证书续期处理 背景 最近护网, 我司被选中作为防守方 因为发现一个vCenter控制台出现异常访问, 被管理员强行断网. 因为是周六的事情,当时自己也没太在意,想着工作日添加网络 ...
- [转帖]一个故事看懂CPU的TLB
https://www.cnblogs.com/xuanyuan/p/15347054.html Hi,我是CPU一号车间的阿Q,还记得我吗,真是好久不见了- 我所在的CPU是一个八核CPU,就有八个 ...
- jcmd的简单总结
jcmd的简单总结 背景 自从2019年公司转向java技术路线. 一直断断续续的在学习java相关的技术内容. 但是总感觉学的不是很深入. 这周比较累.也不想在学新东西了. 所以想着再总结一下jcm ...
- [转帖]Linux后门的几种姿势
转载自 https://evilanne.github.io/2017/08/26/Linux后门-持续关注/ 在一次渗透中,成功获取某目标几台比较重要的机器,当时只想着获取脱库,结果动静太大被发 ...
- 分析fastcache和freecache(一)
分析fastcache和freecache(一) fastcache和freecache是两个比较简单的缓存实现,下面分析一下各自的实现,并学习一下其实现中比较好的方式. fastcache 概述 f ...
- Linux bridge使用dummy接口调用IPVS的问题
Linux bridge使用dummy接口调用IPVS的问题 在IPVS: How Kubernetes Services Direct Traffic to Pods一文中,作者给出了一个简单的组网 ...