100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java i o教程_Java I/O系统

java i o教程_Java I/O系统

时间:2024-06-21 12:15:56

相关推荐

java i o教程_Java I/O系统

FileInputStream(String filePath);//文件的完整路径

FileInputStream(File fileObj);//文件的File对象

这两个构造器都会抛出FileNotFoundException异常。

FileOutputStream继承于OutputStream,该对象可以将字节写入文件。

构造函数:

FileOutputStream(String filePath)

FileOutputStream(String filePath,booleanappend)

FileOutputStream(File fileObj)

FileOutputStream(File fileObj,boolean append)

和FileInputStream一样,不同的是有一个append参数,这个参数如果为true,则以追加的方式打开文件,否则,这个方法会删除同名的已有文件创建一个新的输出流。另外,如果试图打开只读文件会抛出异常。

3、字节缓冲流

对于面向字节的流,缓冲流通过将内存缓冲区附加到IO系统来扩展过滤流。这种流允许java一次对多个字节执行多次IO操作,从而提升性能。

因为可以使用缓冲区,所以略过、标记、或重置流都是可能发生的,BufferedInputStream类、BufferedOutputStream类、PushbackInputStream类都实现了缓冲流。

BufferedInputStream类

缓冲IO是很常见的性能优化手段,BufferedInputStream类允许将任何InputStream对象封装到缓冲流中以提高性能,因为带缓冲区的输入流从流中读入字符时,不会每次都对设备访问。

构造函数:

BufferedInputStream(InputStream inputStream)

BufferedInputStream(InputStream inputStream,int bufSize)

缓冲输入流除了任何InputStream都实现了的read()和skip()方法外,还支持mark()和reset()方法。

BufferedOutputStream类

创建一个带缓冲区的输出流,带缓冲区的输出流在收集要写出的字符时,不会每次都对设备访问,当缓冲区填满或者当流被冲刷时,数据就被写出,因此调用flush()方法才是数据刷盘。

构造函数:

BufferedOutputStream(OutputStream outputStream)

BufferedOutputStream(OutputStream outputStream,int bufSize)

PushbackInputStream类

一个可以预览字节的输入流,它读取字节,但并不破坏他们,读取后可以再将他们回推到输入流中,下次调用read()时可以再次被读取。

构造函数:

PushbackInputStream(InputStream inputStream)

PushbackInputStream(InputStream inputStream,int num)

第一个构造函数创建的流对象允许将一个字节回推到输入流。

第二个构造函数创建的流对象具有一个长度为num的回推缓冲区,从而允许将多个字节回推到输入流中。

4、打印流

PrintStream类

用的最多的System.out.println()就是PrintStream类里的方法。

PrintStream最初的目的是为了以可视化格式打印所有的基本数据类型以及String对象,它的最重要的两个方法:print()和println()可以打印出各种类型,如果参数不是基本类型,那么会自动调用对象的toString()方法并显示结果。

五、字符流

1、顶级抽象类

Reader字符流的顶级抽象类,定义了java字符流的输入模型。

方法列表:

方法

描述

int read()

读取一个字符,返回表示该字符的证书,如果达到文件末尾,则返回-1

int read(char buff[])

读取buff.length个字符,返回成功读取的字符数,如果达到文件末尾,则返回-1

int read(CharBuffer buff)

读取字符,返回成功读取的字符数,如果达到文件末尾,则返回-1

int read(char buff[],int offset,int num)

从buff[offset]开始读,读取num个字符,如果文件达到末尾,则返回-1

long skip(long num)

跳过num个字符,返回实际跳过的字符数

void close()

关闭输入流,如果试图继续读取,会产生IO异常

boolean ready()

如果下一个输入请求不等待,就返回true,否则返回false

boolean markSupported()

如果这个流支持mark或者reset,就返回true

void mark(int num)

在当前流的位置放置标记,该标记在reset()之前一直有效

void reset()

将输入指针重新设置为前面设置的标记位置

Writer字符流的顶级抽象类,定义了java字符流的输出模型。

方法列表:

方法

描述

Writer append(char cn)

将cn追加到调用输出流的末尾,返回对调用流的引用

Writer append(CharSequence chars)

将chars追加到调用输出流的末尾,返回对调用流的引用

Writer append(CharSequence chars,int begin,int end)

将chars从begin到end-1之间的字符追加到输出流的末尾,返回对调用流的引用

void close()

关闭输出流,如果试图继续向其中写入内容,将产生IO异常

void flush()

完成输出状态,从而清空所有缓冲区,即刷新输出缓冲区

void write(int ch)

写入一个字符到输出流中

void write(char buff[])

将整个字符数组写入输出流中

void write(char buff[],int offset,int num)

将buff数组中从buff[offset]开始的num个字符写入输出流中

void write(String str)

将str写到输出流中

void write(String str,int offset,int num)

将字符串str中从offset开始写,写num个字符

2、文件流

FileReader类

FileReader类可以创建用于读取文件内容的Reader对象。

注意:FileReader 用于读取字符流。要读取原始字节流,请考虑使用 FileInputStream。

构造函数:

FileReader(String filePath)

FileReader(File fileObj)

FileWriter类

FileWriter类可以创建能够用于写入文件的Writer对象。

文件是否可用或是否可以被创建取决于底层平台。特别是某些平台一次只允许一个FileWriter(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。

FileWriter用于写入字符流。要写入原始字节流,请考虑使用FileOutputStream。

构造函数:

FileWriter(String filePath)

FileWriter(String filePath,booleanappend)

FileWriter(File fileObj)

FileWriter(File fileObj,boolean append)

append参数代表是否追加到文件末尾。

3、缓冲流

BufferedReader类

BufferedReader类通过缓冲输入提高性能,该类具有两个构造函数:

BufferedReader(Reader inputStream)

BufferedReader(Reader inputStream,int bufSize)

第二个构造函数指定创建bufSize大小的缓冲字符流。

与面向字节的流一样,缓冲的输入字符流也实现了mark()和reset()方法,并且markSupported()会返回true.

BufferedWriter类

BufferedWriter是缓冲输出的Writer,使用BufferedWriter可以通过减少实际向输出设备物理的写入数据的次数来提高性能。

构造函数:

BufferedWriter(Writer outputStream)

BufferedWriter(Writer outputStream,int bufSize)

第一种形式创建的缓冲流使用具有默认大小的缓冲区,在第二种形式中缓冲区的大小是由bufSize指定的。

4、打印流

PrintWriter类

PrintWriter本质上是PrintStream的面向字符的版本。

构造函数:

PrintWriter(OutputStream outputStream)

PrintWriter(OutputStream outputStream,booleanautoFlushingOn)

PrintWriter(Writer outputStream)

PrintWriter(Writer outputStream,boolean autoFlushingOn)

autoFlushingOn参数控制每次调用println()/printf()或format()方法时,是否自动刷新输出缓冲区,如果为true,就自动刷新,否则不自动刷新,没有指定的构造函数不自动刷新。

PrintWriter(File outputFile)

PrintWriter(File outputFile,String charSet)

PrintWriter(String outputFileName)

PrintWriter(String outputFileName,String charSet)

这几个构造函数允许从File对象或根据文件路径创建PrintWriter对象,对于每种形式,都会自动创建文件,所有之前存在的同名文件都会被销毁。一旦创建PrintWriter对象,就将所有输出定向到指定文件,可以通过charSet传递的名称来指定字符编码。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。