86、java的IO操作-字符缓冲流

来源:互联网 发布:daas大数据 编辑:程序博客网 时间:2024/06/05 11:59
/* * 字符流为了高效读写,也提供了对应的字符缓冲流。 * BufferedWriter:字符缓冲输出流 * BufferedReader:字符缓冲输入流 *  * BufferedWriter:字符缓冲输出流 * 将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。  * 可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。  */public class BufferedWriterDemo {public static void main(String[] args) throws IOException {// BufferedWriter(Writer out)// BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(// new FileOutputStream("bw.txt")));BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));bw.write("hello");bw.write("world");bw.write("java");bw.flush();bw.close();}}/* * BufferedReader * 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。  * 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。  *  * BufferedReader(Reader in) */public class BufferedReaderDemo {public static void main(String[] args) throws IOException {// 创建字符缓冲输入流对象BufferedReader br = new BufferedReader(new FileReader("bw.txt"));// 方式1// int ch = 0;// while ((ch = br.read()) != -1) {// System.out.print((char) ch);// }// 方式2char[] chs = new char[1024];int len = 0;while ((len = br.read(chs)) != -1) {System.out.print(new String(chs, 0, len));}// 释放资源br.close();}}/* * 字符缓冲流的特殊方法: * BufferedWriter: * public void newLine():根据系统来决定换行符 * BufferedReader: * public String readLine():一次读取一行数据 * 包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null */public class BufferedDemo {public static void main(String[] args) throws IOException {// write();read();}private static void read() throws IOException {// 创建字符缓冲输入流对象BufferedReader br = new BufferedReader(new FileReader("bw2.txt"));// public String readLine():一次读取一行数据// String line = br.readLine();// System.out.println(line);// line = br.readLine();// System.out.println(line);// 最终版代码String line = null;while ((line = br.readLine()) != null) {System.out.println(line);}//释放资源br.close();}private static void write() throws IOException {// 创建字符缓冲输出流对象BufferedWriter bw = new BufferedWriter(new FileWriter("bw2.txt"));for (int x = 0; x < 10; x++) {bw.write("hello" + x);// bw.write("\r\n");bw.newLine();bw.flush();}bw.close();}}/* * 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中 *  * 数据源: * a.txt -- 读取数据 -- 字符转换流 -- InputStreamReader -- FileReader -- BufferedReader * 目的地: * b.txt -- 写出数据 -- 字符转换流 -- OutputStreamWriter -- FileWriter -- BufferedWriter */public class CopyFileDemo {public static void main(String[] args) throws IOException {// 封装数据源BufferedReader br = new BufferedReader(new FileReader("a.txt"));// 封装目的地BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));// 两种方式其中的一种一次读写一个字符数组char[] chs = new char[1024];int len = 0;while ((len = br.read(chs)) != -1) {bw.write(chs, 0, len);bw.flush();}// 释放资源bw.close();br.close();}}/* * 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中 *  * 数据源: * a.txt -- 读取数据 -- 字符转换流 -- InputStreamReader -- FileReader -- BufferedReader * 目的地: * b.txt -- 写出数据 -- 字符转换流 -- OutputStreamWriter -- FileWriter -- BufferedWriter */public class CopyFileDemo2 {public static void main(String[] args) throws IOException {// 封装数据源BufferedReader br = new BufferedReader(new FileReader("a.txt"));// 封装目的地BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));// 读写数据String line = null;while ((line = br.readLine()) != null) {bw.write(line);bw.newLine();bw.flush();}// 释放资源bw.close();br.close();}}

阅读全文
0 0
原创粉丝点击