zoukankan      html  css  js  c++  java
  • 使用缓冲流来读写文件(转)

    一、通过BufferedReader和BufferedWriter来读写文件

         使用缓冲流的好处是,能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来。经常使用的是readLine()方法,表示一次读取一行数据。

     1 package org.example.io;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.BufferedWriter;
     5 import java.io.File;
     6 import java.io.FileNotFoundException;
     7 import java.io.FileReader;
     8 import java.io.FileWriter;
     9 import java.io.IOException;
    10 
    11 public class TestBufferedWriter {
    12 
    13     public static void main(String[] args) throws Exception {
    14         write();
    15         read();
    16     }
    17 
    18     /**
    19      * DOC 读取信息.
    20      * 
    21      * @throws FileNotFoundException
    22      * @throws IOException
    23      */
    24     private static void read() throws FileNotFoundException, IOException {
    25         File file = new File("E:\a.txt");// 指定要读取的文件
    26         // 获得该文件的缓冲输入流
    27         BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
    28         String line = "";// 用来保存每次读取一行的内容
    29         while ((line = bufferedReader.readLine()) != null) {
    30             System.out.println(line);
    31         }
    32         bufferedReader.close();// 关闭输入流
    33     }
    34 
    35     /**
    36      * DOC 写入信息.
    37      * 
    38      * @throws IOException
    39      */
    40     private static void write() throws IOException {
    41         File file = new File("E:\a.txt");// 指定要写入的文件
    42         if (!file.exists()) {// 如果文件不存在则创建
    43             file.createNewFile();
    44         }
    45         // 获取该文件的缓冲输出流
    46         BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file));
    47         // 写入信息
    48         bufferedWriter.write("你好世界");
    49         bufferedWriter.newLine();// 表示换行
    50         bufferedWriter.write("hello world");
    51         bufferedWriter.flush();// 清空缓冲区
    52         bufferedWriter.close();// 关闭输出流
    53     }
    54 
    55 }

    二、使用BufferedInputStream和BufferedOuputStream读写图片

    使用方式和FileInputStrem和FileOutputStream基本一致:

     1 package org.example.io;
     2 
     3 import java.io.BufferedInputStream;
     4 import java.io.BufferedOutputStream;
     5 import java.io.File;
     6 import java.io.FileInputStream;
     7 import java.io.FileOutputStream;
     8 
     9 public class TestBufferedString {
    10 
    11     public static void main(String[] args) throws Exception {
    12         // 指定要读取文件的缓冲输入字节流
    13         BufferedInputStream in = new BufferedInputStream(new FileInputStream("F:\test.jpg"));
    14         File file = new File("E:\test.jpg");
    15         if (file != null) {
    16             file.createNewFile();
    17         }
    18         // 指定要写入文件的缓冲输出字节流
    19         BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));
    20         byte[] bb = new byte[1024];// 用来存储每次读取到的字节数组
    21         int n;// 每次读取到的字节数组的长度
    22         while ((n = in.read(bb)) != -1) {
    23             out.write(bb, 0, n);// 写入到输出流
    24         }
    25         out.close();// 关闭流
    26         in.close();
    27     }
    28 
    29 }
  • 相关阅读:
    为Ubuntu配置远程X访问(XDMCP & Xming)
    javascript definite guide 笔记
    marvell 88f6282 uboot编译
    qt下的跨目录多工程编译
    15 Remote Desktop Solutions for Linux.
    ubuntu中设置synergy自动开机启动
    UML 基础: 组件图
    UML基础: 统一建模语言简介
    绘制整洁的 UML 图
    养成良好的绘制 UML 序列图的习惯
  • 原文地址:https://www.cnblogs.com/xingmeng/p/3270633.html
Copyright © 2011-2022 走看看