Java io包中特殊的抽象类FilterReader和FilterWriter实践

刚才在看帮助文档的时候,发现Java io包中FilterReader和FilterWriter类没使用过,所以想实践一下。

还用以前的老方法,new一个出来,结果提示有错误:

Cannot instantiate the type FilterReader

不能实例化?

一查帮助文档原来这样写道:

public abstract class FilterReader

extends Reader

Abstract class for reading filtered character streams

原来是抽象类啊,因为之前在面象对象这块,没怎么用抽象类,都是纸上谈兵(欠下的东西迟早要还的)。

吓得我赶紧翻大神的博客来看:深入理解Java的接口和抽象类,最后搞定!

代码如下:

1、先定义一个类FD,该类继承抽象类FilterReader

1 public class FD extends FilterReader {
2         public FD(BufferedReader br) {
3             super(br);
4             // TODO Auto-generated constructor stub
5         }
6     }

2、实例化FD

 1 public void test() throws IOException {
 2         BufferedReader br = null;
 3         br = new BufferedReader(new InputStreamReader(new FileInputStream("E:/syl/1.html"), "UTF-8"));
 4         FD fd = new FD(br);
 5         int i = 0;
 6         char[] b = new char[1024];
 7         int len = 0;
 8         while ((len = fd.read(b)) != -1) {
 9             System.out.println(b);
10         }
11         fd.close();
12     }

其中上面的第3行代码等于:

1 FileInputStream in = new FileInputStream("E:/syl/1.html");
2 InputStreamReader inReader = new InputStreamReader(in, "UTF-8");
3 BufferedReader br = new BufferedReader(inReader);      
时间: 2024-10-05 23:09:13

Java io包中特殊的抽象类FilterReader和FilterWriter实践的相关文章

1.java.io包中定义了多个流类型来实现输入和输出功能,

1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:(C),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(G)   A.输入流和输出流 B.字节流和字符流 C.节点流和处理流   D.File stream E.Pipe stream F.Random stream G.Filter stream

JDK框架简析--java.io包中的输入输出类库

题记 JDK,Java Development Kit. 我们必须先认识到,JDK只是,仅仅是一套Java基础类库而已,是Sun公司开发的基础类库,仅此而已,JDK本身和我们自行书写总结的类库,从技术含量来说,还是在一个层级上,它们都是需要被编译成字节码,在JRE中运行的,JDK编译后的结果就是jre/lib下的rt.jar,我们学习使用它的目的是加深对Java的理解,提高我们的Java编码水平. 本系列所有文章基于的JDK版本都是1.7.16. 本节内容 Java IO库提供了一个可以称之为链

本篇将要讲述的是java io包中的SringR四川成都春熙路发生交通

原文地址:https://www.cnblogs.com/yiquchangge/p/9256757.html

java.IO.File中与系统相关的静态字段如:“/”

这段时间在使用springmvc进行图片上传的操作,但是上传的图片路径由于要考虑到跨平台(windows路径分隔符为"\",linux的为"/")转换需要自己进行定义,麻烦!偶然发现在java.io.包中的File类中就包含了一些我们平常使用的一些符号,这样就不不用自己自定义了,省时省力又省心. 举个例子:路径跨平台最好是这么写: //可自动获取当前系统的分隔符样式 File myFile = new File("C:" + File.separ

黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或文件夹封装成对象 (2)方便于对“文件”与“文件夹属性信息”进行操作 (3)File对象,可以作为参数传递给流的构造函数 (二)构造方法 * 通过File的构造函数创建File对象 方式1:File f = new File("c:\\a.txt"); 方式2:File f2 = newF

关于java同步包中ConcurrentLinkedQueue类的深入分析与理解

一,官方描述 一个基于连接节点的无界线程安全队列.这个队列的顺序是先进先出.队列头部的元素是留在队列中时间最长的,队列尾部的元素是留在队列中时间最短的.新元素被插入到元素的尾部,队列从队列的头部检索元素.当许多线程共享访问同一个集合时,这个类是不二选择.这个队列不允许有null元素. 这个实现基于一种被描述为简单,快速,实用的非阻塞和阻塞公布队列算法而提供的一种有效的空闲等待算法. 注意,不像大多数集合,size方法的操作不是常量时间的,由于是异步队列,决定了元素的数量需要遍历真个元素集. 这个

JAVA io 包小结

IO 无非读写 I --> Reader  O--> Writer 为了方便字符 或者 文本文件的 操作创造出了 字符流 尤其是 缓冲字符输入输出流(BufferedReader,BufferedWriter)   readLine 的方法 简直太好用了 而底层还是用的 字节流 尤其是 缓冲字节输入输出流(BufferedInputStream,BufferedOutput)   read(字符数组,offset,len) 的方法 简直太好用了 /** * I/O 流:I->Input

java.io包和杯子测楼

1 java.io 字符流:Reader 字节流:InputStream 2 杯子测楼 一种杯子,若在第N层被摔破,则在任何比N高的楼层均会破,若在第M层不破,则在任何比M低的楼层均不会破,给你两个这样的杯子,让你在100层高的楼层中测试,要求用最少的测试次数找出恰巧会使杯子破碎的楼层. 分析: 1 如果只有一个杯子,则需要从第1层往上,逐层测试. 2 现在多了一个杯子,就可以用这个杯子确定临界楼层的大致区间,然后第一个杯子用分析1的方式继续.需要测试的次数约为100^(1/2)=10 解答:

黑马程序员——IO包中的其他类

IO包中的其他类: 1.打印流:提供了打印方法,可以将各种数据类型的数据原样打印     字节打印流PrintStream       构造函数可以接受的参数类型:         (1)File对象  File          (2)字符串路径 String          (3)字节输出流  OutputStream 字符打印流PrintWriter        构造函数可以接受的参数类型:           (1)File对象  File          (2)字符串路径 Str