java基础53 IO流技术(转换流)
1、转换流
1.输入字节的转换流:InputStreamReader是字节流转为字符流的桥梁,可以把输入字节流转换为输入字符流
2.输出字节流的转换流:OutputStreamWriter是字符流通向字节流的桥梁(相对于数据来说的);可以把输出字节流转换为输出字符流
2、转换流的作用
1.如果目前获取的是一个字节流需要转换为字符流,这个时候就可以使用转换流. 字节流---->字符流
2.使用转换流可以指定编码进行读写文件
3、实例
package com.dhb.file; import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; /**
* @author DSHORE / 2018-7-20
*
*/
public class Demo27 {
public static void main(String[] args) throws IOException {
//readTest();
//writerTest();
//writerTest2();
readTest2();
}
//使用输入字节流色转换流指定编码读取文件
public static void readTest2() throws IOException{
File file=new File("F:\\a.txt");
FileInputStream fileInputStream=new FileInputStream(file);
InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream,"utf-8");
char[] buf=new char[];
int length=;
while((length=inputStreamReader.read(buf))!=-){
System.out.println(new String(buf,,length));
}
}
//使用输出字节流转换流指定编码
public static void writerTest2() throws FileNotFoundException, IOException{
File file=new File("F:\\a.txt");
//建立数据的输出通道
FileOutputStream fileOutputStream=new FileOutputStream(file);
// 可以把输出字节流转换为输出字符流
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(fileOutputStream, "utf-8");
outputStreamWriter.write("你好吗!");
//关闭资源
outputStreamWriter.close();
}
//
public static void writerTest() throws FileNotFoundException, IOException{
File file=new File("F:\\a.txt");
//建立数据的输出通道
FileOutputStream fileOutputStream=new FileOutputStream(file,true);//true的作用:在文件的原有数据的末尾继续添加数据;如果不写true,原有的数据将被现在要写进去的数据替代掉。
// 可以把输出字节流转换为输出字符流
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(fileOutputStream);
outputStreamWriter.write("你好吗!");
//关闭资源
outputStreamWriter.close();
} public static void readTest() throws IOException{
InputStream in=System.in;//获取标准的输入流
//System.out.println("读到的字符:"+(char)in.read());
//把字节流转换为字符流
InputStreamReader inputStreamReader=new InputStreamReader(in);
//使用字符缓冲流
BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
String line=null;
while((line=bufferedReader.readLine())!=null){
System.out.println("内容:"+line);
}
}
}
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnblogs.com/dshore123/p/9344716.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |
java基础53 IO流技术(转换流)的更多相关文章
- 【java基础】]IO流
IO流 概念: 流的概念源于unix中管道(pipe)的概念,在unix中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备,外部文件等 一个流,一定能够会有源和去向(目的地),他 ...
- java基础之IO流(二)之字符流
java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写 ...
- Java基础之IO流整理
Java基础之IO流 Java IO流使用装饰器设计模式,因此如果不能理清其中的关系的话很容易把各种流搞混,此文将简单的几个流进行梳理,后序遇见新的流会继续更新(本文下方还附有xmind文件链接) 抽 ...
- 01 语言基础+高级:1-8 File类与IO流_day10【缓冲流、转换流、序列化流】
day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据到文件 能够明确字符缓冲流的作用和基本用法 能 ...
- 【Java基础】IO 流
IO 流 File 类 java.io.File 类是文件和文件目录路径的抽象表示形式,与平台无关. File 能新建.删除.重命名文件和目录,但 File 不能访问文件内容本身. 如果需要访问文件内 ...
- java基础之IO流(一)字节流
java基础之IO流(一)之字节流 IO流体系太大,涉及到的各种流对象,我觉得很有必要总结一下. 那什么是IO流,IO代表Input.Output,而流就是原始数据源与目标媒介的数据传输的一种抽象.典 ...
- Java基础学习总结(13)——流IO
一.JAVA流式输入/输出原理 流是用来读写数据的,java有一个类叫File,它封装的是文件的文件名,只是内存里面的一个对象,真正的文件是在硬盘上的一块空间,在这个文件里面存放着各种各样的数据,我们 ...
- Java IO流之转换流
一.转换流 1.在IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换流 2.转换流用于在字节流和字符流之间转换 3.转换流本身是字符流 二.两种转换流 Ou ...
- day1 java基础回顾-IO流
IO流的分类 注:这几个类都是抽象类. IO解决问题: 解决设备与设备之间 的数据传输问题. 比如: 硬盘--->内存 内存----->硬盘 字节流: 输入字节流:---------| I ...
随机推荐
- 破解PostgresSQL登录的6种方法
第一种方式Hydra: Hydra通常是首选工具,它可以对50多种协议执行快速字典暴力攻击,包括telnet,postgres,http,https,smb服务和各种数据库等.现在需要选择一个字典 ...
- 4 MySQL程序概述(包含mysql配置文件配置原理)-学习笔记
以下参考MySQL5.5官方简体中文参考手册完美版--用于自学复习使用 4.1 程序概述 MySQL AB提供了几种类型的程序:一般放在/安装目录/bin下 1 MYSQL服务器和服务器启动脚本 my ...
- 【bzoj2741】[FOTILE模拟赛] L
Portal --> bzoj2741 Solution 突然沉迷分块不能自拔 考虑用分块+可持久化trie来解决这个问题 对于每一块的块头\(L\),预处理\([L,i]\)区间内的所有子区间 ...
- python抓取
我要抓取奥巴马每周的演讲内容http://www.putclub.com/html/radio/VOA/presidentspeech/index.html 如果手动提取,就需要一个个点进去,再复制保 ...
- Mac 上配置 PhpMyAdmin
一.配置自带的 apache 服务器环境 由于 PHP apache 环境在 Mac OS上是自带的,所以不需要另处下安装包,只需要简单配置一下即可.首先打开终端输入命令: sudo vim /etc ...
- 并发库应用之四 & 线程锁Lock应用
Java5的线程并发库中,提供了相应的线程锁接口Lock来帮助我们同步处理.Lock比传统线程模型中的synchronized更加面向对象,锁本身也是一个对象,两个线程执行的代码要实现同步互斥效果,就 ...
- P2424 约数和 && 真丶除法分块
P2424 约数和 题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f ...
- Tomcat权威指南-读书摘要系列2
2. 配置Tomcat 2.1. 重定向Web应用程序的目录 将工程文件与Tomcat分离 复制conf和webapps文件夹到分离目录: 配置CATALINA_BASE环境变量,值为分离目录: 2. ...
- 怎么在.net里面解析JSON文件?
我在网上搜了好多的文章,讲了很多的方法.但是无一例外的都看不懂...可能是因为我在这方面是个白痴吧... 所幸的是,我搜到了一个博客,写的很是清晰,比我之前看的大片文章写的好多了,在这里:http:/ ...
- jvm如何判断对象是否可以被回收
内容基本来自周志明 深入理解Java虚拟机 第二版 第三章 .这本书还可以,不过好像也没什么其他中文的关于jvm比较好的书了 jvm要做垃圾回收时,首先要判断一个对象是否还有可能被使用.那么如何判断一 ...