IO-FileReader及父类关系

java.io

类     FileReader

java.lang.Object

┗java.io.Reader

┗java.io.InputStreamReader

┗java.io.FileReader

所有实现的接口:Closeable,Readable

public class FileReader extends InputStreamReader

用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在FileInputStream上构造一个InputStreamReader。

FileReader用于读取字符流。要读取原始字节流,请考虑使用FIleInputStream。

字段摘要

从类 java.io.Reader 继承的字段

lock

构造方法摘要

FileReader (File file);

在给定从中读取数据的File的情况下创建一个新FileReader。

FileReader(FileDescriptor fd)

在给定从中读取数据的FileDescriptor 的情况下创建一个新FileReader。

FileReader(String fileName)

在给定从中读取数据的文件名的情况下创建一个新FileReader

方法摘要

从类 java.io.InputStreamReader 继承的方法

close,getEncoding,read,ready

从类 java.io.Reader 继承的方法

mark,markSupported,read,read,reset,skip

从类java.lang.Object 继承的方法

clone,equals,finalize,getClass,hashCodde,notify,notifyAll,toString,wait,wait,wait

构造方法详细信息

FileReader

Public FileReader(String filename) throws FileNotFoundException

在给定从中读取数据的文件名的情况下创建一个新 FileReader。

参数:

fileName – 要从中读取数据的文件的名称

抛出:

FileNotFoundException – 如果指定文件不存在,或者它是一个目录,而不是一个常规文件,抑或因为 其他某些原因而无法打开进行读取。

FileReader

public FileReader(FileDescriptor fd)

在给定从中读取数据的FileDescriptor 的情况下创建一个新FileReader。

参数:

fd – 要从中读取数据的FileDescriptor。

Java.io

类 InputStreamReader

Java.lang.Object

┗java.io.Reader

┗java.io.InputStreamReader

所有已实现的接口:

Closeable,Readable

直接已知子类:

FileReader

public class InputStreamReader extends Reader

InputStreamReader 是字节流通向字符流的桥梁:它使用指定的charset读取字节并将其解码为字符。它使用的字符集可以由名称指定或显示给定,或者可以接收平台默认的字符集。

每次调用InputStreamReader 中的一个read()方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。

为了达到最高效率,可要考虑在 BufferedReader 内包装InputStreamReader。例如:

BufferedStream in = new BufferedStream(new InputStreamReader(System.in));

字段摘要

从类 java.io.Reader 继承的字段

lock

构造方法摘要

InputStreamReader(InputStream in)

创建一个使用默认字符集的InputStreamReader。

InputStreamReader(InputStream in,Charset cs)

创建使用给定字符集的 InputStreamReader。

InputStreamReader(InputStream in,String charsetName)

创建使用指定字符集的 InputStreamReader。

InputStreamReader(InputStream in,CharsetDecoder dec)

创建使用给定字符集额解码器的 INputStreamReader。

方法摘要

void  close()         关闭该流并释放与之关联的所有资源。

String        getEncoding()     返回此流使用的字符编码的名称。

Int    read() 读取单个字符,返回字符的ASCII码。

Int read(char[] cbuf,int offset,int length)  将字符读入数组中的某一部分。

boolean ready() 判断此流是否已经准备好用于读取。

从类 java.io.Reader 继承的方法

mark,markSupported,read,read,reset,skip

从类 java.lang.Object继承的方法

Clone,equals,finalize,getClass,hashCode,notify,notifyAll,toString,wait,wait,wait

构造方法详细信息

InputStreamReader

public InputStreamReader(InputStream in)

创建一个使用默认字符集的 InputStreamReader。

参数:

in – InputStream

InputStreamReader

public InputStreamReader(InputStream in, String charsetName)throws UnsupportedEncodingException

创建使用指定字符集的 InputStreamReader。

参数:

in - InputStream

charsetName - 受支持的 charset 的名称

抛出:

UnsupportedEncodingException - 如果不支持指定的字符集

InputStreamReader

public InputStreamReader(InputStream in, Charset cs)

创建使用给定字符集的 InputStreamReader。

参数:

in - InputStream

cs - 字符集

InputStreamReader

public InputStreamReader(InputStream in,CharsetDecoder dec)

创建使用给定字符集解码器的 InputStreamReader。

参数:

in - InputStream

dec - 字符集解码器

方法详细信息

getEncoding

public String getEncoding()

返回此流使用的字符编码的名称。

如果该编码有历史上用过的名称,则返回该名称;否则返回该编码的规范化名称。

如果使用 InputStreamReader(InputStream,String)构造方法创建此实例,则返回的由此编码生成的唯一名称可能与传递给该构造方法的名称不一样。

如果流已经关闭,则此方法会返回null。

返回:

此编码的历史名称;如果流已经关闭,则返回null

read

public int read()throws IOException

读取单个字符。

覆盖:

类Reader中的read

返回:

读取的字符的ASCII码;如果已经到达流的末尾,则返回-1

抛出:

IOException –如果发生I/O错误

read

public int read(char[] cbuf,int offset,int length)throws IOException

将字符读入数组中的某一部分。

指定者:

类Reader中的read

参数:

cbuf – 目标缓冲区

offset – 从此处开始存储字符的偏移量

length – 要读取的最大字符数

返回:

读取的字符数,如果已经到达流的末尾,则返回-1

抛出:

IOException – 如果发生I/O错误

ready

public Boolean ready() throws IOException

判断此流是否已经准备好用于读取。如果其输入缓冲区不为空,或者可从底层字节流读取字节,则InputStreamReader已做好被读的准备。

覆盖:

类Reader中的ready

返回:

如果保证一个read()不阻塞输入,则返回True,否则返回false。

注意,返回false并不保证阻塞下一次读取。

抛出:

IOException – 如果发生I/O 错误

Close

Public void close() throws IOException

从类Reader复制的描述

关闭该流并释放与之关联的所有资源。

在关闭该流后,在调用read(),ready(),mark(),reset()或skip()将抛出IOException。

关闭以前关闭的流无效。

指定者:

接口Closeable中的close

指定者:

类Reader中的close

抛出:

IOException – 如果发生I/O错误

java.io
类 Reader

 
java.lang.Object
java.io.Reader
 

所有已实现的接口:

Closeable, Readable

直接已知子类:

BufferedReader, CharArrayReader, FilterReader, InputStreamReader, PipedReader, StringReader

public abstract class Reader extends Object implements Readable, Closeable

用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。


字段摘要


protected  Object


lock
          用于同步针对此流的操作的对象。


构造方法摘要


protected


Reader()

创建一个新的字符流 reader,其重要部分将同步其自身的
reader。


protected


Reader(Object lock)
          创建一个新的字符流 reader,其重要部分将同步给定的对象。


方法摘要


abstract
 void


close()

关闭该流并释放与之关联的所有资源。


void


mark(int readAheadLimit)

标记流中的当前位置。


boolean


markSupported()

判断此流是否支持 mark() 操作。


int


read()

读取单个字符。


int


read(char[] cbuf)

将字符读入数组。


abstract
 int


read(char[] cbuf,
int off, int len)
          将字符读入数组的某一部分。


int


read(CharBuffer target)
          试图将字符读入指定的字符缓冲区。


boolean


ready()

判断是否准备读取此流。


void


reset()

重置该流。


long


skip(long n)

跳过字符。


从类 java.lang.Object 继承的方法


clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait


字段详细信息

lock

protected Object lock

用于同步针对此流的操作的对象。为了提高效率,字符流对象可以使用其自身以外的对象来保护重要部分。因此,子类应使用此字段中的对象,而不是 this 或者同步的方法。


构造方法详细信息

Reader

protected Reader()

创建一个新的字符流 reader,其重要部分将同步其自身的 reader。


Reader

protected Reader(Object lock)

创建一个新的字符流 reader,其重要部分将同步给定的对象。

参数:

lock - 要同步的对象。


方法详细信息

read

public int read(CharBuffer target)
         throws IOException

试图将字符读入指定的字符缓冲区。缓冲区可照原样用作字符的存储库:所做的唯一改变是 put 操作的结果。不对缓冲区执行翻转或重绕操作。

指定者:

接口 Readable 中的 read

参数:

target - 要将字符读入的缓冲区

返回:

添加到缓冲区的字符数量,如果此字符源位于缓冲区末端,则返回 -1

抛出:

IOException - 如果发生 I/O 错误

NullPointerException - 如果目标为空

ReadOnlyBufferException - 如果目标是一个只读缓冲区

read

public int read()
         throws IOException

读取单个字符。在字符可用、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞。

用于支持高效的单字符输入的子类应重写此方法。

返回:

作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1

抛出:

IOException - 如果发生 I/O 错误


read

public int read(char[] cbuf)
         throws IOException

将字符读入数组。在某个输入可用、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞。

参数:

cbuf - 目标缓冲区

返回:

读取的字符数,如果已到达流的末尾,则返回 -1

抛出:

IOException - 如果发生 I/O 错误


read

public abstract int read(char[] cbuf,
                         int off,
                         int len)
                  throws IOException

将字符读入数组的某一部分。在某个输入可用、发生 I/O 错误或者到达流的末尾前,此方法一直阻塞。

参数:

cbuf - 目标缓冲区

off - 开始存储字符处的偏移量

len - 要读取的最多字符数

返回:

读取的字符数,如果已到达流的末尾,则返回 -1

抛出:

IOException - 如果发生 I/O 错误

skip

public long skip(long n)
          throws IOException

跳过字符。在某个字符可用、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞。

参数:

n - 要跳过的字符数

返回:

实际跳过的字符数

抛出:

IllegalArgumentException - 如果 n 为负。

IOException - 如果发生 I/O 错误

ready

public boolean ready()
              throws IOException

判断是否准备读取此流。

返回:

如果保证下一个 read() 不阻塞输入,则返回 True,否则返回 false。注意,返回 false 并不保证阻塞下一次读取。

抛出:

IOException - 如果发生 I/O 错误

markSupported

public boolean markSupported()

判断此流是否支持 mark() 操作。默认实现始终返回 false。子类应重写此方法。

返回:

当且仅当此流支持此 mark 操作时,返回 true。

mark

public void mark(int readAheadLimit)
          throws IOException

标记流中的当前位置。对 reset() 的后续调用将尝试将该流重新定位到此点。并不是所有的字符输入流都支持 mark() 操作。

参数:

readAheadLimit - 在仍保留该标记的情况下,对可读取字符数量的限制。在读取这样多的字符后,尝试重置流可能会失败。

抛出:

IOException - 如果该流不支持 mark(),或者发生一些其他 I/O 错误

reset

public void reset()
           throws IOException

重置该流。如果已标记该流,则尝试在该标记处重新定位该流。如果已标记该流,则以适用于特定流的某种方式尝试重置该流,例如,通过将该流重新定位到其起始点。并不是所有的字符输入流都支持 reset() 操作,有些支持 reset() 而不支持 mark()。

抛出:

IOException - 如果尚未标记流,或者该标记已失效,或者该流不支持 reset(),或者发生一些其他 I/O 错误

close

public abstract void close()
                    throws IOException

关闭该流并释放与之关联的所有资源。在关闭该流后,再调用 read()、ready()、mark()、reset() 或 skip() 将抛出 IOException。关闭以前关闭的流无效。

指定者:

接口 Closeable 中的 close

抛出:

IOException - 如果发生 I/O 错误

时间: 2024-08-06 17:09:09

IO-FileReader及父类关系的相关文章

Java输入、输入、IO流 类层次关系梳理

Java输入.输入.IO流 类层次关系梳理 本文主要关注在Java编程中涉及到的IO相关的类库.方法.以及对各个层次(抽线.接口继承)的流之间的关系进行梳理 相关学习资料 http://baike.baidu.com/view/1007958.htm?noadapt=1 http://blog.csdn.net/hguisu/article/details/7418161 https://www.ibm.com/developerworks/cn/java/j-lo-javaio/ http:/

【java】io流之字符输入流:java.io.Reader类及子类的子类java.io.FileReader

1 package 文件操作; 2 3 import java.io.File; 4 import java.io.FileReader; 5 import java.io.IOException; 6 import java.io.Reader; 7 8 public class TestReader { 9 public static void main(String[] args) throws IOException { 10 File file=new File("D:"+F

java里IO流的逻辑关系

在InputStream里和OutputStream里,提供了以下的针对不同信息来源的IO处理对象: 1)以字节形式,读写内存缓冲区中内容得到的ByteArrayInputStream和ByteArrayOutputStream对象 2)以字符串为对象,读写String累心数据的StringBufferInputStream和StringBufferOutputStream对象. 3)针对文件读写操作的FileInputStream和FileOutputStream对象. 4)针对管道数据读写操

面向对象程序设计-C++_课时16子类父类关系

初始化列表 类名::类名(形参1,形参2,...形参n):数据成员1(形参1),数据成员2(形参2),...,数据成员n(形参n) { ... } 规则1,初始化列表进行数据成员的初始化 规则2,初始化列表进行父类的初始化 1 #include <iostream> 2 using namespace std; 3 4 class A 5 { 6 private: 7 int i; 8 public: 9 A(int ii) :i(ii)//初始化列表 10 { 11 std::cout &l

java IO操作:FileInputStream,FileOutputStream,FileReader,FileWriter实例

FileInputStream   <span style="font-family:Verdana;">import java.io.File; import java.io.FileInputStream; import java.io.InputStream; public class TestFileInputStream { public static void main(String[] args) throws Exception { // 异常抛出, 不处理

J04-Java IO流总结二《 FileReader和FileWriter 》

FileReader和FileWriter的源码非常简单,下面通过分析它们的源码以更好地进行理解这两个流 1. FileReader FileReader实现了读取底层的字节数据并将其转换为字符数据的功能,转换时依赖的字符集为平台默认的字符集GBK(Windows平台). FileReader源码如下: public class FileReader extends InputStreamReader { public FileReader(String fileName) throws Fil

IO流入门-第四部分-FileReader

FileReader基本用法和方法示例 /* java.io.Reader java.io.InputStreamReader 转换流(字节输入流---->字符输入流) java.io.FileReader 文件字符输入流 */ import java.io.*; public class FileReaderTest01 { public static void main(String[] args) throws Exception { //创建文件字符输入流 FileReader fr =

IO FileWriter FileReader 学习

import java.awt.Frame; import java.io.*; public class filewriter { /** * @param args */ public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub //test1(); test2(); } static void test1()throws IOException{ FileWri

Java中的IO操作 字符流:FileReader和 FileWriter

FileReader和 FileWriter  读写字符串 1 package object.io; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.FileReader; 6 import java.io.FileWriter; 7 import java.io.IOException; 8 9 public class FileWrite { 10 11 public s