[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类作用是类似闹钟的功能,也就是定时或者每 ...
随机推荐
- What is the difference between modified duration, effective duration and duration?
Macaulay Duration (traditionally just called Duration) The formula usually used to calculate a bond' ...
- SZU1
CodeForces 518A 字符串进位.. #include <iostream> #include <string> #include <cstring> # ...
- mysql三表联合查询
-- SELECT d.userId, d.userPhoNum, a.orderId, a.productType, b.courseId, b.courseName, c.payJe -- FRO ...
- python简单的爬虫
def baidu_tieba(url,begin_page,end_page): for i in range(begin_page, end_page+1): sName = string.zfi ...
- sql server or Oracle: table MS_Description
--SQL Server表描述 及 字段描述的增.删.改.查询 --sql server 2000系统表sysproperties在SQL 2008中无效的问题 今天无意中在网上发现Sqlserver ...
- 第1章:程序设计和C语言(C语言入门)
一.程序和程序语言 1,程序的概念:完成某项事物所预设的活动方式. 2,程序设计:人们描述计算机要做的工作. 二 .程序设计语言及其发展 1.机器语言,2汇编语言,3高级语言{a)编译,b)解释}: ...
- Python基础-月考
1. 8<<2等于? # 解释:将8按位左移2位 # 8 0 0 0 0 1 0 0 0 # 32 0 0 1 0 0 0 0 0 2. 通过内置函数计算5除以2的余数 print(div ...
- ASP.NET 页面之间传递值的几种方式
1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer4.Applicatio ...
- Java 之数组(4)
什么是数组: 问:编写代码保存 4 名学生的考试成绩. 答:简单啊,定义 4 个变量呗 问:那“计算全年级 400 名学生的考试成绩”,肿么办 答: ....... 数组,就可以帮助你妥妥的解决问题啦 ...
- asp.net怎么让某一页的 requestEncoding设置成utf-8
web.config里是这样的 <globalization requestEncoding="gb2312" responseEncoding="gb2312&q ...