java重写输入流
来源:互联网 发布:河北科技大学 知乎 编辑:程序博客网 时间:2024/04/27 16:30
Java有两种类型的输入类:字节流和字符流。字节流以字节(8bit)为单位,包含两个抽象类:InputStream和OutputStream。字符流以字符(16bit)为单位,包含两个抽象类Reader和Writer。
假如现在要设计一个输入流类,该类的作用为在读文件时,将大写字母转化为小写字母,将小写字母转化为大写字母。在设计时可以通过继承抽象装饰者类(FilterInputStream)来实现一个装饰类。通过调用InputStream类或其他子类提供的一些方法再加上逻辑判断代码从而可以很简单地实现这个功能。
FilterInputStream 的作用是用来“封装其它的输入流,并为它们提供额外的功能”。它的常用的子类有BufferedInputStream和DataInputStream。
示例如下:
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FilterInputStream;import java.io.IOException;import java.io.InputStream;//自定义输入类class MyOwnInputStream extends FilterInputStream{/**重写read方法*/@Overridepublic int read() throws IOException {int c = 0;if((c=super.read()) != -1){//将小写转换为大写if(Character.isLowerCase(c)){return Character.toUpperCase(c);}else if(Character.isUpperCase(c)){//大写转化成小写return Character.toLowerCase(c);}else{return c;}}else{return -1;}}/**这个构造函数一定要有*/protected MyOwnInputStream(InputStream arg0) {super(arg0);}}public class Test {public static void main(String[] args) {//指定文件目录 方法一//String path = System.getProperty("user.dir");//File file = new File(path+"/text.txt");//方法二,直接从project目录下面找文件File file = new File("text.txt");int c = 0;try {InputStream inputStream = new MyOwnInputStream(new FileInputStream(file));while((c=inputStream.read()) != -1){System.out.print((char)c);}inputStream.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}
text.txt的内容为:aaaBBBcccDDD123
则输出为:AAAbbbCCCddd123
转自《Java程序员 面试笔试》
0 0
- java重写输入流
- Java重写
- JAVA 重写
- java:重写
- java 重写
- java重写
- java-重写
- Java重写
- java-流-输入流
- JAVA输入流代码
- JAVA输入流
- JAVA输入\输出流
- java 输入流
- Java输入/输出流
- Java输入流
- Java 输入/输出流
- java输入流InputStream
- Java中的输入流
- List、Set、 数组等转字符串 (均通过str = StringUtils.join(set.toArray(), ",");)
- 安全驾驶-停车 (五十二)
- android query方法各个参数的含义
- 下拉刷新 上拉分页 滑动删除listview
- 安全驾驶-玻璃水 (五十三)
- java重写输入流
- java set list map 区别
- 安全驾驶-试驾(五十四)
- MFC学习的笔记
- 开始搭建第一个zookeeper
- 关于多线程执行显示进度条的实例
- android training管理应用的内存
- C++总结:开篇
- 安全驾驶-心病(五十五)