public class ByteBufferStream { public static void main(String[] args) { ByteBufferStream byteBufferStream = new ByteBufferStream(); //1、字节输入流,表示把文件写入到硬盘中 byteBufferStream.outPutStream("D:\\2.txt"); //2、字节输出流,表示想硬盘读出文件显示出来 byteBufferStream.inputStream("D:\\2.txt"); } /** * 按照字节数组的大小读取 * * @param path */ private void inputStream(String path) { File file = new File(path); if (!file.exists()) { IAssert.throwMsg("文件不存在:" + path); } //todo 下面两行都可以实现字节流读取 InputStream fileInputStream = null; BufferedInputStream bufferedInputStream = null; try { fileInputStream = new FileInputStream(file); bufferedInputStream = new BufferedInputStream(fileInputStream); } catch (FileNotFoundException e) { IAssert.throwMsg("文件不存在:" + path); } try { byte[] bytes = new byte[1024]; // byte[] bytes = new byte[(int) file.length()]; int len = bufferedInputStream.read(bytes); while (len != -1) { len = bufferedInputStream.read(bytes); } String currentData = new String(bytes, StandardCharsets.UTF_8); System.out.println("读出的数据为:" + currentData); //必须手动关闭,因为fileInputStream不属于内存的资源,导致垃圾回收器无法回收这些不用的资源。 bufferedInputStream.close(); fileInputStream.close(); } catch (IOException e) { IAssert.throwMsg("写入失败"); } } private void outPutStream(String path) { File file = new File(path); if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { IAssert.throwMsg("创建文件失败:" + path); } } String content = "我是中国人456"; FileOutputStream fileOutputStream = null; BufferedOutputStream bufferedOutputStream = null; try { fileOutputStream = new FileOutputStream(file); bufferedOutputStream = new BufferedOutputStream(fileOutputStream); } catch (FileNotFoundException e) { IAssert.throwMsg("找不到文件:" + file.getPath()); } try { bufferedOutputStream.write(content.getBytes(StandardCharsets.UTF_8)); bufferedOutputStream.flush(); bufferedOutputStream.close(); fileOutputStream.close(); } catch (IOException e) { IAssert.throwMsg("写入失败"); } } }
字符流BufferedInputStream与BufferedOutputStream
最新推荐文章于 2024-05-16 23:56:19 发布