几种IO流的概念及其常用方法(学习总结)

**

几种IO流的概念及其常用方法(学习总结)

**

File类:

  代表文件或者目录的类对文件及目录进行创建、查找和删除操作。

构造方法:

public File(String parent, String child) :根据父类抽象路径名和子类路径名字符串创建一个新 File 实例。

public File(String pathname) :通过路径名字符串转换为抽象路径名来创建新的 File实例。

public File(File parent, String child) :根据父类路径名字符串和子类路径名字符串创建一个新 File 实例。

常用方法 :

public String getAbsolutePath() :返回此File的绝对路径名字符串。

public String getPath() :将此File转换为路径名字符串。

public String getName() :返回由此File表示的文件或目录的名称。

public long length() :返回由此File表示的文件的长度。

public boolean exists() :此File表示的文件或目录是否实际存在。

public boolean isFile() :此File表示的是否为文件。

public boolean isDirectory() :此File表示的是否为目录。

绝对路径:
以盘符或者/开头的路径—不以当前路径为基准,直接跳转到指定的位置相对路径:不以盘符或者/开头的路径。以当前路径为基准计算目的地的路径

相对路径:
不以盘符或者/开头的路径。以当前路径为基准计算目的地的路径

流中的异常处理

1.将流对象放在try外定义并且赋值为null,放在try中初始化
2.在关流之前需要判断流对象是否初始化成功
3.需要将流强制置为null以防关流失败无法释放文件
4.需要在写完数据之后手动添加flush操作以防关流失败产生数据丢失

IO概述

当数据是从外部流向程序的时候,输入流–>读取文件—将数据从文件读到程序中

数据是从程序流向外部的时候,输出流–>向文件中写入数据—数据从程序流向了文件

根据数据的传输方向:输入流、输出流
根据数据的传输形式:字节流、字符流

OutputStream字节输出流

将字节信息写到目的地

常用方法

public void close() :关闭此输出流并释放与此流相关联的任何系统资源。

public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。

public void write(byte[] b) :从指定的字节数组写入此输出流。

public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。

FileOutputStream文件输出流

用于将数据写出到文件。

构造方法

对于下面两个路径:
如果有这个文件,会清空这个文件。
如果没有这个文件,会创建该文件。

public FileOutputStream(File file) :创建文件输出流以写入由指定的 File对象表示的文件。
public FileOutputStream(String name) : 创建文件输出流以指定的名称写入文件。

创建文件输出流以指定的名称写入文件:

public FileOutputStream(File file, boolean append) :
public FileOutputStream(String name, boolean append) :

true—写入时不覆盖原有内容,而且在文件内容后面接着写
false–写入会覆盖原有内容,没有第二个参数时默认是false

InputStream字节输入流

读取字节信息到内存中

常用方法

public void close() :关闭此输入流并释放与此流相关联的任何系统资源。

public abstract int read() : 从输入流读取数据的下一个字节。

public int read(byte[] b) : 从输入流中读取一些字节数,并将它们存储到字节数组 b中 。

FileInputStream文件输入流

从文件中读取字节

构造方法

FileInputStream(File file) : 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系 统中的 File对象 file命名。

FileInputStream(String name) : 通过打开一个到实际文件的连接来创建一个 FileInputStream ,该文件通过文件系统中的路径名 name 指定。

Reader字符输入流

可以读取字符信息到内存中 

常用方法:

public void close() :关闭此流并释放与此流相关联的任何系统资源。

public int read() : 从输入流读取一个字符。

public int read(char[] char) : 从输入流中读取一些字符,并将它们存储到字符数组 char中 。

FileReader:文件字符输入流

读取字符文件

构造方法

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

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

Writer 字符输出流

将指定的字符信息写出到目的地

构造方法:

void write(int c) 写入单个字符。

void write(char[] cbuf) 写入字符数组。

abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一部分,off数组的开始索引len 写的字符个数。

void write(String str) 写入字符串。

void write(String str, int off, int len) 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。

刷新和关流:

如果不关闭输出流,无法写出字符到文件中。
关闭关闭流对象,无法继续写出数据

void flush() 刷新该流的缓冲。
void close() 关闭此流。

flush :刷新缓冲区,流对象可以继续使用。
close :先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。

FileWriter:文件字符输出流

写出字符到文件

构造方法

FileWriter(File file) :根据给定的 File 对象构造一个 FileWriter 对象。

FileWriter(String fileName) : 根据给定的文件名构造一个 FileWriter 对象。

常用方法:

write(char[] cbuf) :写入字符数组。

write(char[] cbuf, int off, int len) : 写入字符数组的某一部分。

BufferedReader:字符缓冲流

   需要传入字符输入流,真正读取数据的是传入的这个字符输入流,缓冲流仅仅提供了一个缓冲区。 

字节缓冲流:
BufferedInputStream,BufferedOutputStream
字符缓冲流:
BufferedReader , BufferedWriter

BufferedInputStream:字节缓冲流

构造方法

public BufferedInputStream(InputStream in) :创建一个 新的缓冲输入流。

public BufferedOutputStream(OutputStream out) : 创建一个新的缓冲输出流。字符缓冲流 构造方法

public BufferedReader(Reader in) :创建一个 新的缓冲输入流。

public BufferedWriter(Writer out) : 创建一个新的缓冲输出流。

特有方法

BufferedReader: public String readLine() : 读一行文字。

BufferedWriter: public void newLine() : 写一行行分隔符,由系统属性定义符号

InputStreamReader:转换输入流

转换输入流---将字节流转化为字符流---底层是以字节流形式读取,但是表层是以字符流形式操作

构造方法

InputStreamReader(InputStream in) : 创建一个使用默认字符集的字符流。

InputStreamReader(InputStream in, String charsetName) : 创建一个指定字符集的字符流。

OutputStreamWriter:转换输出流

将字符流转化为字节流---表层是以字符流形式写出,底层是以字节流形式来传输 

构造方法

OutputStreamWriter(OutputStream in) : 创建一个使用默认字符集的字符流。

OutputStreamWriter(OutputStream in, String charsetName) : 创建一个指定字符集的字符流。

PrintStream:打印流

传入流之后向指定的位置打入数据

构造方法

public PrintStream(String fileName) : 使用指定的文件名创建一个新的打印流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值