一、概念

------->1、BufferedReader/BufferedWriter 【参考19.03.31文章】

*Reader/Writer-------->2、InputStreamReader/ OutputStreamWriter(转换流,实现字节转字符)---》2-1:FileReader和FileWriter(文件字符类【19.03.31文章】)

【代码示例】

 1 /**字符流相关
 2  * 2、InputStreamReader/ OutputStreamWriter(转换流,实现字节转字符)》》2-1:FileReader和FileWriter(用过,文件字符类)
 3  * 要点:
 4  * 1)、以字符流的形式操作字节流(仅限纯文本)
 5  * 2)、指定字符集
 6  *
 7  *
 8  */
 9 package cn.sxt.test;
10
11 import java.io.BufferedReader;
12 import java.io.BufferedWriter;
13 import java.io.FileOutputStream;
14 import java.io.IOException;
15 import java.io.InputStreamReader;
16 import java.io.OutputStreamWriter;
17 import java.io.Reader;
18 import java.net.URI;
19 import java.net.URL;
20
21
22 public class Test_0402_InputStreamReader {//System.in 字节输入流 , System.out字节输出流
23     public static void main(String[] args) throws IOException {
24         /*InputStreamReader isr=new InputStreamReader(System.in);//控制台输入,通过这步字节已经转成字符了
25         BufferedReader bReader=new BufferedReader(isr);//加个缓冲字符流
26
27         OutputStreamWriter osr=new OutputStreamWriter(System.out);//控制台输出
28         BufferedWriter bWriter=new BufferedWriter(osr);
29
30         //基本操作,循环获取键盘的输入(输入"exit"退出循环),输出此内容
31         String msg="";
32         while (!msg.equals("exit")) {
33             msg=bReader.readLine();//逐行循环读取
34             bWriter.write(msg);//逐行循环写出
35             bWriter.newLine();//换行
36             bWriter.flush();//强制刷新,即使缓冲区没满,也可以让缓冲区的内容强制出去。如果没这句只有缓冲区满才会输出
37         }
38         bReader.close();
39         bWriter.close();    */
40
41         //抓取baidu首页网页的源码
42         URL url=new URL("http://www.baidu.com"); //url.openStream() 获得一个网络字节流
43         InputStreamReader isr=new InputStreamReader(url.openStream(),"UTF-8");//通过这步字节已经转成字符了
44         BufferedReader bReader=new BufferedReader(isr);
45
46         FileOutputStream file =new FileOutputStream("baidu.html");
47         OutputStreamWriter osr=new OutputStreamWriter(file,"UTF-8");//把读取到的保存在baidu.html文件中去
48         BufferedWriter bWriter=new BufferedWriter(osr);
49
50         String msg=null;
51         while ((msg=bReader.readLine())!=null) {
52             //System.out.println(msg);
53             bWriter.write(msg);
54             bWriter.newLine();
55         }
56         bWriter.flush();
57
58
59         bReader.close();
60         bWriter.close();
61     }
62
63 }

转载于:https://www.cnblogs.com/ID-qingxin/p/10638328.html

[19/04/02-星期二] IO技术_字符流分类总结(含字符转换流InputStreamReader/ OutputStreamWriter,实现字节转字符)...相关推荐

  1. [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)...

    一.概念及分类 InputStream(输入流)/OutputStream(输出流)是所有字节输入输出流的父类 [注]输入流和输出流的是按程序运行所在的内存的角度划分的 字节流操作的数据单元是8的字节 ...

  2. 《深入浅出DPDK》读书笔记(九):流分类与多队列、流过滤、虚拟化流分类方式、流分类技术的使用

    Table of Contents 94.Linux内核对多队列的支持 95.DPDK与多队列 98.流分类 99.RSS 100.Flow Director 101.服务质量 102.虚拟化流分类方 ...

  3. JAVA笔记11__File类/File类作业/字节输出流、输入流/字符输出流、输入流/文件复制/转换流...

    /*** File类:文件的创建.删除.重命名.得到路径.创建时间等,是唯一与文件本身有关的操作类*/ public class Main {public static void main(Strin ...

  4. 2※、封装流(包装流派)、缓冲流【字节缓冲流、字符缓冲流】-->【字节缓冲流、字符缓冲流】 、字符集、转换流以及打印流

    封装流(包装流) ※缓冲流 [字节缓冲流.字符缓冲流] 缓冲流[字节流]文件复制以及BufferedOutputStream的源码查看 缓冲流[字符流] [读取操作.写出操作] 练习:文本排序:请将文 ...

  5. 19.04.02笔记

    用户权限: su 切换用户账户 格式: [su 用户名 ] [su] 切换到root [su root] 切换到root [su -] 切换到root用户 同时切换到root目录 添加组: [grou ...

  6. [19/04/12-星期五] 多线程_任务定时调度(Timer、Timetask和QUARTZ)

    一.Timer和Timetask 通过Timer和Timetask,我们可以实现定时启动某个线程. java.util.Timer 在这种实现方式中,Timer类作用是类似闹钟的功能,也就是定时或者每 ...

  7. [19/04/11-星期四] 多线程_并发协作(生产者/消费者模式_2种解决方案(管程法和信号灯法))...

    一.概念 多线程环境下,我们经常需要多个线程的并发和协作.这个时候,就需要了解一个重要的多线程并发协作模型"生产者/消费者模式". Ø 什么是生产者? 生产者指的是负责生产数据的模 ...

  8. 黑马程序员-JAVA基础-IO流之流操作规律及读写转换流

    ------- android培训.java培训.期待与您交流!------- 在操作IO流时,常常会迷惑:流对象很多,不知道该使用哪一个? 一.流操作的基本规律: 通过三个明确来完成: 1.明确'源 ...

  9. java基础 io流 字节流 字符流 节点流 包装流 转换流 缓冲流 对象流 打印流 Properties类

    目录 1.概念 2.常用的文件操作 2.1 创建文件 2.2 获取文件相关信息 2.3 目录的操作和文件删除 3. IO流原理及流的分类 3.1 流的分类 4.InputStream 字节输入流 4. ...

最新文章

  1. android 时间转换 工具下载,时间转换器手游下载_时间转换器安卓版下载v1.09.25_3DM手游...
  2. Python正则表达式介绍 re.findall(pattern, str, flag=0)/re.I re.L re.M
  3. 在IDEA上使用maven构建WEB工程,出现Unable to compile class for JSP错误,页面500. ————解决方案
  4. MySQL关键字EXPLAIN的用法及其案例
  5. java语句中switch_Java中的switch-case语句
  6. centos查看历史指令记录_CentOS清除SSH登录记录、历史命令及日志缓存
  7. STM8学习笔记---通过示波器分析串口数据
  8. 苹果针对FaceTime内的4个iOS漏洞提出更新
  9. 不要为了“分库分表”而“分库分表”!
  10. python实现给定一个列表判断里面是否有重复元素
  11. 小米手机MIUI刷机教程(小米6等)
  12. 奔图m7100dw_奔图M7100dW驱动
  13. ZCU106开发板MIPI摄像头开发的示例程序【详细讲解】
  14. WebSestalt,好用的富集分析工具,介绍及使用教程
  15. Sqlserver官网下载时各版本含义
  16. 解决matlab 关于警告(warning)、错误(error)、异常(exception)与断言(assert)问题总结
  17. 软件设计模式与体系结构实验——3.1-1组合模式的应用
  18. mars3d与echart图表结合使用
  19. 怎么用IDEA上传本地项目到码云/Github?
  20. 读书笔记——社会心理学——关系理论

热门文章

  1. jQuery的extend详解
  2. aidl笔记 2/5/2015
  3. Windows Live Writer推荐SyntaxHighlighter代码着色插件
  4. 《LeetCode力扣练习》第617题 合并二叉树 Java
  5. trycatch抛出异常_Java生鲜电商平台架构中,如何统一异常处理及架构实战
  6. python数据驱动读取用例_Python Selenium 之数据驱动测试
  7. like mysql 相反_mysql真的不能做搜索引擎吗?
  8. html中open打开新网页,JavaScript-打开新窗口(window.open)
  9. 电镀面积计算机公式,电镀面积计算法.pdf
  10. python取特定年份的数据_python,_怎样用python提取不同股票csv里特定时间段的数据,python - phpStudy...