黑马程序员_84_IO转换流
来源:互联网 发布:情侣装专卖店品牌淘宝 编辑:程序博客网 时间:2024/05/02 22:54
——- android培训、java培训、期待与您交流! ———-
概述
转换流的由来:
字符流与字节流之间的桥梁
方便了字符流与字节流之间的操作
转换流的应用:
字节流中的数据都是字符时,转成字符流操作更高效。
转换流:
InputStreamReader:字节到字符的桥梁,解码。
OutputStreamWriter:字符到字节的桥梁,编码。
InputStreamReader是字节流通向字符流的桥梁。
示例
示例1
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class TransStreamDemo{ public static void main(String[] args) throws IOException { //字节流 InputStream in = System.in; //将字节转成字符的桥梁,转换流 InputStreamReader isr = new InputStreamReader(in); //对字符流进行高效装饰,缓冲区 BufferedReader bufr = new BufferedReader(isr); String line = null; //读取到了字符串数据 while((line = bufr.readLine()) != null){ if("over" .equals(line)) break; System.out.println(line.toUpperCase()); } }}
运行结果图
小结
使用字节流读取一个中文字符需要读取两次,因为一个中文字符由两个字节组成,而使用字符流只需读取一次。
System.out的类型是PrintStream,属于OutputStream类别。
OutputStreamReader是字符流通向字节流的桥梁。
示例2
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;public class TransStreamDemo{ public static void main(String[] args) throws IOException { InputStream in = System.in; InputStreamReader isr = new InputStreamReader(in); //字符流 BufferedReader bufr = new BufferedReader(isr); //字节流,字节数据 OutputStream out = System.out; //数据到了osw,目的地out控制台 OutputStreamWriter osw = new OutputStreamWriter(out); BufferedWriter bufw = new BufferedWriter(osw); String line = null; while((line = bufr.readLine()) != null){ if("over" .equals(line)) break; //将字符数据用缓冲区对象将数据写入缓冲区,目的地是osw bufw.write(line.toUpperCase()); bufw.newLine(); //osw.write(line.toUpperCase() + "\r\n");可以替代上面两行代码 bufw.flush(); } }}
运行结果图
示例2简化代码
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class TransStreamDemo{ public static void main(String[] args) throws IOException { BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out)); String line = null; while((line = bufr.readLine()) != null){ if("over" .equals(line)) break; bufw.write(line.toUpperCase()); bufw.newLine(); bufw.flush(); } }}
运行结果图
练习
练习1
需求:将键盘录入的数据写入到一个文件中。
源码
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.IOException;public class TransStreamDemo{ public static void main(String[] args) throws IOException { BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("a.txt"))); String line = null; while((line = bufr.readLine()) != null){ if("over" .equals(line)) break; bufw.write(line.toUpperCase()); bufw.newLine(); bufw.flush(); } }}
运行结果图
练习2
需求:将一个文本文件内容显示在控制台上。
源码
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class TransStreamDemo{ public static void main(String[] args) throws IOException { BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream("a.txt"))); BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out)); String line = null; while((line = bufr.readLine()) != null){ if("over" .equals(line)) break; bufw.write(line.toUpperCase()); bufw.newLine(); bufw.flush(); } }}
运行结果图
练习3
需求:将一个文本文件中的内容复制到另一个文件中。
源码
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class TransStreamDemo{ public static void main(String[] args) throws IOException { BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream("a.txt"))); BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("b.txt"))); String line = null; while((line = bufr.readLine()) != null){ if("over" .equals(line)) break; bufw.write(line.toUpperCase()); bufw.newLine(); bufw.flush(); } }}
运行结果图
0 0
- 黑马程序员_84_IO转换流
- 黑马程序员:IO流之转换流
- 黑马程序员_IO_字节流&转换流
- 黑马程序员:IO流之转换流
- 黑马程序员-转换流的字符编码
- 黑马程序员--javaIO 之转换流
- 黑马程序员 <梦想之旅 >转换流
- 黑马程序员_<<转换流(InputStreamReader,OutputStreamWriter)>>
- 黑马程序员:转换流介绍:InputStreamReader、OutputStreamWriter
- 黑马程序员--IO(4)(转换流)
- 黑马程序员:IO流之间的转换、
- 黑马程序员---String 转换
- 黑马程序员--数据类型转换
- 黑马程序员:类型转换
- 黑马程序员--里氏转换
- 黑马程序员---数据类型转换
- 黑马程序员-查表发进制转换优化
- 黑马程序员_Javascript类型转换
- ZedBoard REV-D板子搭载Linaro系统
- Drawable和Bitmap的区别
- 自定义Button实现圆角和点击效果
- DuiVision开发教程(17)-对话框
- 游戏服务端中使用Servlet和Java注解的一个好设计
- 黑马程序员_84_IO转换流
- 自定义DialogFragment
- 黑马程序员_85_IO流的操作规律
- Qt4学习(2)——布局使用(制作登记界面)
- 黑马程序员_网络编程
- 渗透测试之手动漏洞利用
- Light OJ 1050 Marbles
- 一篇文章学会 git 分支开发
- 5.18