zoukankan      html  css  js  c++  java
  • 流的存储

     1 package com.java.Stream;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.BufferedWriter;
     5 import java.io.File;
     6 import java.io.FileInputStream;
     7 import java.io.FileNotFoundException;
     8 import java.io.FileWriter;
     9 import java.io.IOException;
    10 import java.io.InputStreamReader;
    11 import java.io.UnsupportedEncodingException;
    12 
    13 public class BufferStream {
    14 
    15     /**
    16      * @param args
    17      * @throws IOException 
    18      */
    19     public static void main(String[] args) throws IOException {
    20         String sourcePathFile = "F:\workspace\test\1111.txt";
    21         String outPathFile = "F:\workspace\test1\2222.txt";
    22         String encoding = "utf-8";
    23         String line = null;
    24         FileWriter fw = null;
    25         BufferedWriter bw = null;
    26         try {
    27             //BufferedReader输入流
    28             FileInputStream in = new FileInputStream(sourcePathFile);
    29             InputStreamReader isr = new InputStreamReader(in, encoding);//定义字符集
    30             BufferedReader br = new BufferedReader(isr);
    31             //BufferedWriter输出
    32             File file = new File(outPathFile);
    33             if (!file.getParentFile().exists()) {
    34                 file.getParentFile().mkdir();
    35             }
    36             //以下任选
    37             fw = new FileWriter(file);//也可使用 FileOutputStream out = new FileOutputStream(file) ;   OutputStreamWriter osw = new OutputStreamWriter(out); 记得写close关闭
    38 //            fw = new FileWriter(file,true);///true 追加信息,false 覆盖信息
    39             bw = new BufferedWriter(fw);
    40             while ((line = br.readLine()) != null) {
    41                 bw.write(line);
    42                 bw.write("
    ");//换行
    43                 bw.flush();//刷新缓冲区,否则会出现数据没有写入完全的情况
    44             }
    45         } catch (FileNotFoundException e) {
    46             e.printStackTrace();
    47         } catch (UnsupportedEncodingException e) {
    48             e.printStackTrace();
    49         } catch (IOException e) {
    50             e.printStackTrace();
    51         }finally{
    52             if(fw != null){
    53                 fw.close();
    54             }
    55             if(bw != null){
    56                 bw.close();
    57             }
    58         }
    59     }
    60 }

    摘录:

    一、字符流是官方对字节流的一种封装,一种简化,其目的为了令开发者更加好的读取文本。

    二、FileOutputStream和FileInputStream :

    1、属于字节流。

    2、能设置是否覆盖原来的内容,true表示不覆盖,接着写;false表示覆盖,重写

    三、OutputStreamWriter和InputStreamReader:

    1、属于字符流。

    2、能设置文件读写编码。

    四、BufferedWriter 和BufferedReader:

    1、属于字符流

    2、提供缓存区,效率高,读满缓冲区返回

  • 相关阅读:
    重学Mybatis从入门到源码之一
    Ribbon的负载均衡策略及使用方法
    SpringCloud之Ribbon的使用及源码解析
    FeignClient spi 调用 短路异常 & 线程池配置
    springboot 中yml配置
    jrebel 启动失败的处理
    使用@Cacheable注解时,Redis连不上,直接调用方法内部的解决方案
    redis scan 命令指南
    正式学习单元测试
    Cannot assign requested address 和 SO_REUSEADDR 参数
  • 原文地址:https://www.cnblogs.com/Monster-World/p/9564707.html
Copyright © 2011-2022 走看看