java IO流的简单介绍及应用
来源:互联网 发布:2017年建筑业发展数据 编辑:程序博客网 时间:2024/05/22 00:50
java中流的本质是数据传输,流的主要作用是为了改善程序性能并且使用方便,根据处理数据类型的不同分为:字节流和字符流。
字节流(8bit)包含两个抽象类:InputStream(输入流)和OutputStream(输出流)。字符流(16bit)一次可读取多个字节包含:Reader(输入流)和Writer(输出流)。字节流和字符流最主要的区别是:自接力在处理输入输出时不会用到缓存,而字符流会用到缓存。
下面是IO流的应用实例,需求是设计一个输入流的类,该类的作用为在读该文件时把文件中的大写字母转换为小写字母,把小写字母转换为大写字母。通过抽象装饰类FilterInputStream来实现一个装饰类,通过调用InputStream 类或
其子类提供方法加上一定的逻辑判断代码可以简单地实现这个功能。例如test.txt中的aaaBBBcccDDD123,就会输出为:AAAbbbCCCddd123.
实现类:
package lianxi_book;import java.io.FilterInputStream;import java.io.IOException;import java.io.InputStream;/* * 需求:设计一个输入流的类,该类的作用为在读该文件时把文件中的大写字母转换为小写字母,把小写字母转换为大写字母。 * * 分析: * 通过抽象装饰类FilterInputStream来实现一个装饰类,通过调用InputStream 类或 * 其子类提供方法加上一定的逻辑判断可以简单的实现这个功能。 * */public class MyOwnInputStream extends FilterInputStream{public MyOwnInputStream(InputStream in){super(in);}public int read() throws IOException{int c= 0;if((c=super.read())!=-1){//把小写转换成大写if(Character.isLowerCase((char) c)){return Character.toUpperCase((char) c);}//把大写转换成小写else if(Character.isUpperCase((char) c)){return Character.toLowerCase((char) c);}//如果不是字母保持不变else{return c;}}else{return -1;}}}
测试类:
package lianxi_book;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;public class Test {public static void main(String[] args) {int c;try {InputStream is = new MyOwnInputStream(new BufferedInputStream(new FileInputStream("test.txt")));while((c=is.read())>0){System.out.print((char) c);}is.close();} catch (IOException e) {// TODO Auto-generated catch block//e.printStackTrace();System.out.println(e.getMessage());}}}
2 0
- java IO流的简单介绍及应用
- 黑马程序员-java基础-IO流的简单介绍
- Java的IO与NIO简单介绍
- io流的简单应用
- java IO 简单应用
- java.io中的字符流简单介绍
- 浅谈java的IO流及应用案例
- dwr的介绍及简单应用
- oracle数组的简单介绍及应用
- XML的简单介绍及应用
- oradebug的简单介绍及应用
- C#栈的简单介绍及应用
- 比较器的简单介绍及应用
- Libxml2的简单介绍及应用
- Java IO流的介绍
- java、IO流总结及应用
- 几种服务器端IO模型的简单介绍及实现
- 几种服务器端IO模型的简单介绍及实现
- CSS利用checkbook实现开关按钮
- iOS多线程技术
- 圈奶牛<计算几何><C++>
- [IOS开发]模仿微博的客户端(1)
- 【试错】——人类不断学习、进步的前提
- java IO流的简单介绍及应用
- leetcode 58:Length of Last Word
- VcXsrv: 一个好用的Windows X11 Server
- Invalid header signature问题产生的原因及解决方法
- 代码管理工具
- Android WebRTC 音视频开发总结(一)
- 【Head First设计模式-读书笔记】策略模式
- 在 Lua 里 使用 Cocos Studio 导出的 .csb 文件
- Machine Learning week 4 quiz: Neural Networks: Representation