outputstreamwriter用法_floating power object
大家好,又见面了,我是你们的朋友全栈君。
写这个类的原因,网上有很多介绍这两个类的,InputStreamReader类的使用,没有任何异议,而OutputStreamWriter,看了网的帖子和博客说的都不是很清楚,所以小皮虾好好研究了一下OutputStreamWriter类,所以下面的总结有不对之处,欢迎指正! api类中解释: InputStreamReader 是字节流通向字符流的桥梁, 将字节流转换为字符流 OutputStreamWriter 是字符流通向字节流的桥梁,将字符流转换为字节流 一 、InputStreamReader类 1.引入InputStreamReader类 作用:它可以使用指定的charset 读取字节并将其解码为字符 其构造函数如下: InputStreamReader (InputStream in) 创建一个使用默认字符集的 InputStreamReader。 InputStreamReader (InputStream in, Charset cs) 创建使用给定字符集的 InputStreamReader。 InputStreamReader (InputStream in, CharsetDecoder dec) 创建使用给定字符集解码器的 InputStreamReader。 InputStreamReader (InputStream in, String charsetName) 创建使用指定字符集的 InputStreamReader。 2.举例说明如下: 使用起来无异议,很容易明白,使用实例如下: 为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。 BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
eg:class TransStreamDemo{
public static void main(String[] args){
//因为system中的in方法是system的静态方法public static final InputStream in
// 所以可以向上转换为InputStream父类
InputStream in = System.in;//读取键盘的输入
//传入对象为in,将字节流转换为字符流Reader的对象isr
InputStreamReader isr = new InputStreamReader(in);
//System.in就读取一个字符。为了能一次读取一行使用者的输入,使用了BufferedReader来对使用者输入的字符进行缓冲。readLine()
//方法会在读取到使用者的换行字符时,再一次将整行字符串传入,所以使用BufferedReader类,可以提高读取字符的效率
BufferdReader bufr =new BufferedReader(isr);
String line = null;
while((line = bufr.readline())!=null){
System.out.println(line.toUpperCase);
}
bufr.close;
}
}
二、 OutputStreamWriter类 1.引入OutputStreamWriter类 作用:可使用指定的charset 将要写入流中的字符编码成字节 其构造函数如下: OutputStreamWriter(OutputStream out) 创建使用默认字符编码的 OutputStreamWriter。 OutputStreamWriter(OutputStream out,Charset cs) 创建使用给定字符集的 OutputStreamWriter。 OutputStreamWriter(OutputStream out,CharsetEncoder enc) 创建使用给定字符集编码器的 OutputStreamWriter。 OutputStreamWriter(OutputStream out,String charsetName) 创建使用指定字符集的 OutputStreamWriter。 2.举例说明如下:
eg:public static void transWriteByBuf() throws IOException {
//因为system中的in方法是system的静态方法public static final InputStream in
// 所以可以向上转换为InputStream父类
InputStream in = System.in;//读取键盘的输入
//传入对象为in,将字节流转换为字符流Reader的对象isr
InputStreamReader isr = new InputStreamReader(in);
//System.in就读取一个字符。为了能一次读取一行使用者的输入,使用了 BufferedReader来对使用者输入的字符进行缓冲。readLine()
//方法会在读取到使用者的换行字符时,再一次将整行字符串传入,所以使用BufferedReader类,可以提高读取字符的效率
BufferdReader bufr =new BufferedReader(isr);
//将字符流转换为字节流
// 因为system中的in方法是system的静态方法public static final OutputStream in,所以可以向上转换为OutputStream父类
OutputStream out = System.out;//打印到控制台。
OutputStreamWriter osr = new OutputStreamWriter(out);//输出
BufferedWriter bufw = new BufferedWriter(osr);//缓冲
String line = null;
while((line = bufr.readline())!=null)
{
//这个语句很重要,是把读到字符流写到osr字符流转换对象中,转换成字节流打印到控制台因为这是一个写的过程,与InputStreamReader 类相反,所以这个地方如果理解透了,也就真正的理解了OutputStreamWriter 类,而不是网上很多说的OutputStreamWriter 是 将字节流转换为字符流,所以api的解释一般是不会错,有时候是我们自己没有真的的理解。
bufw.write(line);
bufw.newline();
bufw.flush();
}
bufr.close;
}
“`
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/197771.html原文链接:https://javaforall.cn
相关文章
- java object toarray,Object[] toArray()
- java string 转 object_java 类型转换 Object和String互转
- mapminmax 用法
- C++中list用法详解[通俗易懂]
- C/CPP中static的用法:全局变量与局部变量
- java case when用法_sql case when 嵌套
- matlab中plot函数用法颜色_matlab数学符号大全
- ORA-39130: Object type string not imported. Base object name conflicts with the master table ORACLE 报错 故障修复 远程处理
- ORA-47284: error adding Realm Object string.string. string is not a valid object type ORACLE 报错 故障修复 远程处理
- mysql递归函数with recursive的用法举例
- 掌握Linux下的cp命令使用方法(linuxcp用法)
- 深入了解MySQL函数的使用方法(mysql中函数用法)
- Oracle COL命令的用法概览(oracle col用法)
- jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项