[19/04/02-星期二] IO技术_字符流分类总结(含字符转换流InputStreamReader/ OutputStreamWriter,实现字节转字符)
一、概念
------->1、BufferedReader/BufferedWriter 【参考19.03.31文章】
*Reader/Writer-------->2、InputStreamReader/ OutputStreamWriter(转换流,实现字节转字符)---》2-1:FileReader和FileWriter(文件字符类【19.03.31文章】)
【代码示例】
/**字符流相关
* 2、InputStreamReader/ OutputStreamWriter(转换流,实现字节转字符)》》2-1:FileReader和FileWriter(用过,文件字符类)
* 要点:
* 1)、以字符流的形式操作字节流(仅限纯文本)
* 2)、指定字符集
*
*
*/
package cn.sxt.test; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.net.URI;
import java.net.URL; public class Test_0402_InputStreamReader {//System.in 字节输入流 , System.out字节输出流
public static void main(String[] args) throws IOException {
/*InputStreamReader isr=new InputStreamReader(System.in);//控制台输入,通过这步字节已经转成字符了
BufferedReader bReader=new BufferedReader(isr);//加个缓冲字符流 OutputStreamWriter osr=new OutputStreamWriter(System.out);//控制台输出
BufferedWriter bWriter=new BufferedWriter(osr); //基本操作,循环获取键盘的输入(输入"exit"退出循环),输出此内容
String msg="";
while (!msg.equals("exit")) {
msg=bReader.readLine();//逐行循环读取
bWriter.write(msg);//逐行循环写出
bWriter.newLine();//换行
bWriter.flush();//强制刷新,即使缓冲区没满,也可以让缓冲区的内容强制出去。如果没这句只有缓冲区满才会输出
}
bReader.close();
bWriter.close(); */ //抓取baidu首页网页的源码
URL url=new URL("http://www.baidu.com"); //url.openStream() 获得一个网络字节流
InputStreamReader isr=new InputStreamReader(url.openStream(),"UTF-8");//通过这步字节已经转成字符了
BufferedReader bReader=new BufferedReader(isr); FileOutputStream file =new FileOutputStream("baidu.html");
OutputStreamWriter osr=new OutputStreamWriter(file,"UTF-8");//把读取到的保存在baidu.html文件中去
BufferedWriter bWriter=new BufferedWriter(osr); String msg=null;
while ((msg=bReader.readLine())!=null) {
//System.out.println(msg);
bWriter.write(msg);
bWriter.newLine();
}
bWriter.flush(); bReader.close();
bWriter.close();
} }
[19/04/02-星期二] IO技术_字符流分类总结(含字符转换流InputStreamReader/ OutputStreamWriter,实现字节转字符)的更多相关文章
- [19/03/31-星期日] IO技术_四大抽象类_字符流( 字符输入流 Reader、 字符输出流 Writer )(含字符缓冲类)
一.概念 Reader Reader用于读取的字符流抽象类,数据单位为字符. int read(): 读取一个字符的数据,并将字符的值作为int类型返回(0-65535之间的一个值,即Unicode ...
- [19/04/01-星期一] IO技术_字节流分类总结(含字节数组(Array)流、字节数据(Data)流、字节对象(Object)流)
一.字节流分类概括 -->1.ByteArrayInputStream /ByteArrayOutputStream(数组字节输入输出) InputStream/OutputStr ...
- [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)
一.概念及分类 InputStream(输入流)/OutputStream(输出流)是所有字节输入输出流的父类 [注]输入流和输出流的是按程序运行所在的内存的角度划分的 字节流操作的数据单元是8的字节 ...
- [19/03/28-星期四] IO技术_基本概念&字符编码与解码
一.概念 输入(Input) 指的是:可以让程序从外部系统获得数据(核心含义是“读”,读取外部数据) 常见的应用: Ø 读取硬盘上的文件内容到程序.例如:播放器打开一个视频文件.word打开一个do ...
- Java:IO流-流的操作规律和转换流
首先我们先来了解一些IO流基本知识. 一,基本知识概括 具体的IO流有很多种,针对不同的应用场景应该使用相应的流对象.但怎么确定应该使用哪个IO流对象呢? 一般要有四个明确: 1)明确源和目的 源:I ...
- Java IO流学习总结五:转换流-InputStreamReader、OutputStreamWriter
类的继承关系 Reader |__ BufferedReader.StringReader.InputStreamReader |__ FileReader Writer |__ BufferedWr ...
- JAVA笔记11__File类/File类作业/字节输出流、输入流/字符输出流、输入流/文件复制/转换流
/** * File类:文件的创建.删除.重命名.得到路径.创建时间等,是唯一与文件本身有关的操作类 */ public class Main { public static void main(St ...
- [19/04/03-星期三] IO技术_其它流(RandomAccessFile 随机访问流,SequenceInputStream 合并流)
一.RandomAccessFile 随机访问流 [版本1] /* *RandomAccessFile 所谓随机读取就是 指定位置开始或指定位置结束 的读取写入文件 * 实现文件的拆分与合并 模拟下载 ...
- [19/04/12-星期五] 多线程_任务定时调度(Timer、Timetask和QUARTZ)
一.Timer和Timetask 通过Timer和Timetask,我们可以实现定时启动某个线程. java.util.Timer 在这种实现方式中,Timer类作用是类似闹钟的功能,也就是定时或者每 ...
随机推荐
- Azure Java Libraries 入门
本指南演示了以下 Azure Java Libraries 的用法,包括设置认证.创建并使用 Azure 存储.创建并使用 Azure SQL 数据库.部署虚拟机.从 GitHub 部署 Azure ...
- 《MySQL 基础课程》笔记整理(基础篇)
一.尝试MySQL 1.打开MySQL # 启动MySQL服务 sudo service mysql start # 使用 root 用户登录,这里密码为空,直接回车登录 mysql -u root ...
- mysql-connector/python使用示例
1.下载安装connector/python 地址:https://dev.mysql.com/downloads/connector/python/ 下载的版本(mysql-connector-py ...
- ajax实现菜单联动显示信息(当选择单位的时候,动态关联出人员信息)
在jsp页面中使用onchange属性调用下面的方法: 在script中写入: function fromid(){ var from_id = $("#from_id").val ...
- JS加法相关
1:首先JS是一种弱语言,但是同类型可以自己相加减 例如“a”+”b” 可以自动组成ab : 1+ 2 自动变成3 var data = 2; var currentPage = data; //2 ...
- Python-常用模块2
今天我们继续来看模块的那些事儿 一.os模块 所有和操作系统相关内容都在os模块 os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('d ...
- 怎样修改织梦网站的favicon图标
现在很多的网站浏览器栏上都有favicon图标,比如百度,大家用织梦做好网站后,可能发现自己的网站favicon图标默认的不好看,如何修改织梦网站的favicon导航图标呢,很多人肯定有过困惑,小编遇 ...
- 中国gis100强
广州南方测绘仪器有限公司 北京四维图新科技股份有限公司 北京北斗星通导航技术股份有限公司 高德软件有限公司 北京合众思壮科技股份有限公司 中国地图出版社 广州中海达卫星导航技术股份有限公司 正元地理信 ...
- C# CRC16算法实现【转】
/// <summary> /// CRC校验 /// </summary> public class CRC { #region CRC16 public static by ...
- 【2014-08-23】Beyong Coding
be a product engineer,not be a engineer 选择比努力更重要 just code it,code it ,until you make it 缺的不是i ...