public class CharBufferStream { public static void main(String[] args) { CharBufferStream charBufferStream = new CharBufferStream(); //1、字符输入流,表示把文件写入到硬盘中 charBufferStream.outPutStream("D:\\2.txt"); //2、字符输出流,表示想硬盘读出文件显示出来 charBufferStream.inputStream("D:\\2.txt"); } private void inputStream(String path) { File file = new File(path); if (!file.exists()) { IAssert.throwMsg("文件不存在:" + path); } //todo 下面两行都可以实现字节流读取 FileReader fileReader = null; BufferedReader bufferedReader = null; try { fileReader = new FileReader(file); bufferedReader = new BufferedReader(fileReader); } catch (FileNotFoundException e) { IAssert.throwMsg("文件不存在:" + path); } try { //todo 1、按照字符长度读取 // condition1(bufferedReader); //todo 2、按行读取 // condition2(bufferedReader); //todo 3、使用Stream方式读取每行内容 condition3(bufferedReader); //必须手动关闭,因为fileInputStream不属于内存的资源,导致垃圾回收器无法回收这些不用的资源。 bufferedReader.close(); fileReader.close(); } catch (IOException e) { IAssert.throwMsg("写入失败"); } } private void condition3(BufferedReader bufferedReader) { System.out.println("condition3输出:"); bufferedReader.lines().forEach(System.out::println); } private void condition2(BufferedReader bufferedReader) { try { String line = bufferedReader.readLine(); while (Objects.nonNull(line)){ System.out.println("condition2:"+line); line = bufferedReader.readLine(); } } catch (IOException e) { e.printStackTrace(); } } private void condition1(BufferedReader bufferedReader) throws IOException { char[] chars = new char[1024]; int len = bufferedReader.read(chars); while (len != -1) { len = bufferedReader.read(chars); } String currentData = new String(chars); System.out.println("condition1读出的数据为:" + currentData); } private void outPutStream(String path) { File file = new File(path); if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { System.out.println("创建文件失败:" + path); } } String content = "我是中国人7890"+"\n"+"我爱中国"; FileWriter fileWriter = null; BufferedWriter bufferedWriter = null; try { fileWriter = new FileWriter(file); bufferedWriter = new BufferedWriter(fileWriter); } catch (FileNotFoundException e) { IAssert.throwMsg("未找到文件:"+path); } catch (IOException e) { e.printStackTrace(); } try { bufferedWriter.write(content); bufferedWriter.flush(); bufferedWriter.close(); fileWriter.close(); } catch (IOException e) { IAssert.throwMsg("写入失败"); } } }
字符流BufferedReader与BufferedWriter
最新推荐文章于 2022-12-22 16:47:18 发布