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 }
  • 相关阅读:
    PortalBasic Web 应用开发框架:应用篇(六) —— 公共组件
    如何提高Linq查询的性能
    Distributed SMS Processor
    新书《火球 UML大战需求分析》试读 第一章 大话UML
    UML 软件这是源基地软件大学
    Java多线程编程总结
    [译]扩展JavaScript功能的正确方法
    OEA体验:常用功能3 多对多关系
    MicroOrm.Net
    ASP.NET MVC Model元数据及其定制 [中篇]
  • 原文地址:https://www.cnblogs.com/xingmeng/p/3270633.html
Copyright © 2011-2022 走看看