字符缓冲流
java.io.BufferedWriter extends Writer BufferedWriter:字符缓冲输出流
继承自父类的共性成员方法: void write(char[] cbuf) 写入字符数组。 abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一部分。 void write(int c) 写入单个字符。 void write(String str) 写入字符串。 void write(String str, int off, int len) 写入字符串的某一部分 abstract void close() 关闭此流,但要先刷新它。 abstract void flush() 刷新该流的缓冲。
构造方法: BufferedWriter(Writer out) 创建一个使用默认大小输出缓冲区的缓冲字符输出流。 BufferedWriter(Writer out, int size) 创建一个使用给定大小输出缓冲区的新缓冲字符输出流 参数: Writer out:字符输出流,可以传递FileWriter,缓冲流会给FileWriter增加一个缓冲区,提高FileWriter的写入效率 int size:指定缓冲区的大小,不写默认大小
特有的成员方法: void newLine() 写入一个行分隔符。会根据不同的操作系统,获取不同的行分隔符
写换行:写换行符号 windows:\r\n linux:\n mac:\r
使用步骤: 1 创建字符缓冲输出流,构造方法中传递字符输出流 2 调用字符缓冲输出流中的方法write,把数据写入内存缓冲区中 3 调用字符缓冲区的方法flush,把内存缓冲区中的数据刷新到文件中 4 释放资源
public class demo06BufferedWriter {
public static void main(String
[] args
) throws IOException
{
BufferedWriter bw
= new BufferedWriter(new FileWriter("D:\\Eclipse\\workplace\\day1\\src\\num11\\a.txt"));
for (int i
= 0; i
< 10; i
++) {
bw
.write("呆桃加油!");
bw
.newLine();
}
bw
.flush();
bw
.close();
}
}
java.io.BufferedReader extends Reader BufferedReader :字符缓冲输入流
继承自父类的共性成员方法: int read() 读取单个字符。 int read(char[] cbuf) 将字符读入数组 abstract void close() 关闭该流并释放与之关联的所有资源构造方法: BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流。 BufferedReader(Reader in, int sz) 创建一个使用指定大小输入缓冲区的缓冲字符输入流
参数: - Reader in:字符输入流,可以传递FileReader,缓冲流会给FileReader增加一个缓冲区,提高FileReader的读取效率 - int size:指定缓冲区的大小,不写默认大小 特有的成员方法: - String readLine () 读取一个文本行 。通过下列字符之一即可认为某行已终止:换行 (’\n’)、回车 (’\r’) 或回车后直接跟着换行(’\r\n’) - 返回值:包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null (注意不是返回-1)使用步骤: 1 创建字符缓冲输入流,构造方法中传递字符输入流 2 调用字符缓冲输入流中的方法read/readLine读取文本 3 释放资源
public class demo07BufferedReader {
public static void main(String
[] args
) throws IOException
{
BufferedReader br
= new BufferedReader(new FileReader("D:\\Eclipse\\workplace\\day1\\src\\num11\\a.txt"));
String line
;
while((line
= br
.readLine()) != null
) {
System
.out
.println(line
);
}
br
.close();
}
}
文本排序案例
public class demo08Sort {
public static void main(String
[] args
) throws IOException
{
HashMap
<String, String> map
= new HashMap<String, String>();
BufferedReader br
= new BufferedReader(new FileReader("D:\\Eclipse\\workplace\\day1\\src\\num11\\in.txt"));
BufferedWriter bw
= new BufferedWriter(new FileWriter("D:\\Eclipse\\workplace\\day1\\src\\num11\\out.txt"));
String line
;
while((line
= br
.readLine())!=null
) {
String
[] arr
= line
.split("\\.");
map
.put(arr
[0], arr
[1]);
}
for (String key
: map
.keySet()) {
String value
= map
.get(key
);
line
= key
+ "." + value
;
bw
.write(line
);
bw
.newLine();
}
bw
.close();
br
.close();
}
}