[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类作用是类似闹钟的功能,也就是定时或者每 ...
随机推荐
- Linux学习笔记之(2)~linux目录树概览和说明
献给知道mono,了解Jexus,对.net混搭技术感兴趣的朋友. linux目录树如下: 详解:/bin: 系统有很多放置执行档的目录,但/bin比较特殊.因为/bin放置的是在单人维护模式下还能够 ...
- express常用中间件
整理一下工作中经常使用到的Express中间件 config-lite: 读取配置文件 不同环境下配置文件使用 - Node实战 config-lite express-session: sessio ...
- 使用axis2调用webservice需要导入的依赖
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> &l ...
- [android] android项目架构
准备步骤: 1.创建工程(设置版本兼容,最低兼容版本) 2.导入常用jar包,(处理字符串和加密用的jar文件) Commons Lang,Commons Codec commons-codec.ja ...
- 互联网轻量级框架SSM-查缺补漏第三天
简言:平安夜,继续慵懒的学习.我真的是不喜欢学习··· 第三章认识MyBatis核心组件 3.1 持久层的概念和MyBatis的特点 持久层:可以将业务数据存储带磁盘,具有长期存储的能力.一般执行持久 ...
- jasperreports+iReport+jatoolsPrinter制作报表笔记
此文章是基于 EasyUI+Knockout实现经典表单的查看.编辑 一. 准备工作 1. 点击此下载相关的文件,并把 ims 文件夹放到 ims 工程对应的路劲下 2. 参考网址:杰创打印控件 二. ...
- innerHTML、innerText、outerHTML、textContent的区别
示例html代码: <div id="test"> <span style="color:red">test1</span> ...
- BZOJ3498: PA2009 Cakes(三元环)
题意 题目链接 Sol 按照套路把边转成无向图,我们采取的策略是从权值大的向权值小的连边 然后从按权值从小到大枚举每个点,再枚举他们连出去的点\(v\) 如果\(v\)的度数\(\leqslant M ...
- MySQL数据库学习笔记<一>
MySQL基本概念以及简单操作 一.MySQL MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系 ...
- Linux-学习笔记(PHP向)<一>
Linux常用命令 使用PHP服务器端脚本编程语言进行网站开发,需要在lamp环境下进行,Linux作为”四剑客”之一是有必要了解熟悉的,而Linux系统并不像windows操作系统那样,以图形化的界 ...