IO流用来处理设备之间的传送的。
按照操作数据分为字符流和字节流。
按照流向分为:输入流输出流。
IO流有四个基类:InputStream,OutputStream Reader ,Writer
字符流的抽象基类:Reader ,Writer。
Writer类中的共性方法
Writer append(char c) 将指定字符添加到此 writer。
abstract void close() 关闭此流,但要先刷新它。
abstract void flush() 刷新该流的缓冲。
void write(char[] cbuf) 写入字符数组。
flush()方法和close()方法的区别:
flush只刷新缓冲,刷新后还可以继承写入数据。
close刷新并关闭缓冲,关闭后不可以用次对象写入数据
Reader类中的共性方法:
abstract void close() 关闭该流并释放与之关联的所有资源。
void mark(int readAheadLimit) 标记流中的当前位置。
boolean markSupported() 判断此流是否支持 mark() 操作。
读取方法(有重载形式):
int read()
void reset() 重置该流。
long skip(long n) 跳过字符。
只有close方法:
有IO就有异常异常处理的方式:
FileWriter fw =null;
try {
fw= new FileWriter("demo1.txt");
fw.write("zff");
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fw!=null)
fw.close();//如果有多个流要分别关闭。
} catch (IOException e) {
e.printStackTrace();
}
}
Reader和Writer子类:
用于操作文件的类
FileWriter:此类中只有构造函数没有特有方法
构造函数
new FileWriter(String fileName("Demo.txt"));
默认是当前目录,创建时如果有则会覆盖当前文件 ,没有会新创建一个文件
FileWriter(String fileName, boolean append)
根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象
FileReader:此类中只有构造函数没有特有方法(继承并复写了父类的方法)
构造函数
FileReader(String fileName) 在给定从中读取数据的文件名的情况下创建一个新 FileReader
为提高效率产生的子类:
BufferedWriter:
特有方法: void newLine() 写入一个行分隔符。 跨平台。
Windows表示\r\n Linux表示\n(像这样的方法一般都在缓冲区中)
BufferedReader
String readLine() 读取一个文本行。包含该行内容的字符串,
不包含任何行终止符,如果已到达流末尾,则返回 null
BufferedReader的子类java.io.LineNumberReader类:
int getLineNumber() 获得当前行号。
void setLineNumber(int lineNumber) 设置当前行号。
String readLine() 读取文本行。 |