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多 ...
随机推荐
- 神通数据库的varchar和nvarchar的验证
神通数据库的varchar和nvarchar的验证 登录神通数据库 isql 注意 神通数据库的默认密码是 szoscar55 Welcome to isql 2.0.56 interactive t ...
- [转帖]修改jmeter内存配置(win&mac&linux)
目录 一.背景: 二.win环境下修改jmeter内存 三.mac&linux环境下修改jmeter内存 四.验证内存是否修改成功 一.背景: 在进行大数据.高并发压测的过程性,有时会遇上JM ...
- stress-NG 磁盘测试结果-全国产信创部分验证
stress-NG 磁盘测试结果 摘要 前几天分别还是用了redis-benchmark还有specjvm2008进行了多种系统的压测 得出了信创CPU的一些简单结论 但是一直还没有压测磁盘, 今天想 ...
- [转帖]VMware常用软件ISO下载汇总(2023年6月更新)
https://www.dinghui.org/vmware-iso-download.html#vcsa-patch 请访问 www.dinghui.org 获得最新版,文章将持续更新.[最后更新时 ...
- Redisson/Jedis 线程数不足报错问题的思考
Redisson/Jedis 线程数不足报错问题的思考 背景 最近公司内总出现 Redis相关的错误 !-_-! 看我最近发的博客就可以看的出来. 这个错误提示其实是 两年前 清明节进行 压测时发现的 ...
- Redis Cluster in K3S
Redis Cluster in K3S 学习资料 https://www.cnblogs.com/cheyunhua/p/15619317.html https://blog.csdn.net/cq ...
- vim 复制代码的方法
之前vim 复制代码 总是格式变错乱了 尤其是yaml文件 有的还带注释 非常痛苦 今天早上查了下 原来处理的方式非常简单 增加一个参数就可以了 方法为 1. vim 打开一个文件 2.输入 :se ...
- 通过Environment获取属性文件的值,竟然会调用到JNDI服务!!!
一.背景介绍 某应用在压测过程机器cpu使用率超过80%,通过在线诊断工具进行CPU采样生成的火焰图,看到程序中频繁调用environment.getProperty()获取属性值,而其内部调用了Jn ...
- VictoriaMetrics 1.84.0发布
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 11.25日,valyala大神发布了VictoriaMe ...
- 【小分享】vm-storage中,计算metric的平均长度
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 表达式如下: sum by (type) (vm_cach ...