zoukankan      html  css  js  c++  java
  • java14 IO流缓冲区 input output

    package com.java14.myjava;

    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;

    import org.junit.Test;

    public class TestFileStream {
    // 字节流 处理图片 InputStream outputStream
    // 字符流 处理文本 Reader Writer
    @Test
    public void testcopyFile() throws Exception {
    FileInputStream fis = new FileInputStream("D:\java\JPG\tree.jpg");
    FileOutputStream fos = new FileOutputStream("D:\java\JPG\2.jpg");
    byte[] Buffer = new byte[1024];
    int len = 0;
    // 只要不是-1就一直循环
    while ((len = fis.read(Buffer)) != -1) {
    // 有多少写多少
    fos.write(Buffer, 0, len);
    }
    fis.close();
    fos.close();
    System.out.println("复制完毕");
    }

    /**
    *
    * 测试复杂文件
    */
    @Test
    public void TestfuzaFile() throws Exception {
    FileInputStream fis1 = new FileInputStream("D:\java\JPG\text.txt");

    // 读取一次读满到缓冲
    // byte[] buffer2 =new byte[fis1.available()];
    // fis1.read(buffer2);
    // fis1.close();
    // System.out.println(new String(buffer2,"utf-8"));

    byte[] buffer = new byte[12];
    int len1 = 0;
    while ((len1 = fis1.read(buffer)) != -1) {
    // 以不同的格式的编码读出来
    System.out.println(new String(buffer, 0, len1, "utf-8"));
    }
    fis1.close();
    }

    /**
    * 读取字符流
    */
    @Test
    public void TestFileReader() throws Exception {
    FileReader reader = new FileReader("D:\java\JPG\text.txt");
    char[] buf = new char[1024];
    int len = 0;
    while ((len = reader.read(buf)) != -1) {
    System.out.println(new String(buf));
    }
    reader.read(buf);
    reader.close();
    }

    /**
    * 将字节流转换为字符流
    *
    */

    @Test
    public void TestzhuanhuanFile() throws Exception {
    FileInputStream fistest = new FileInputStream("D:\java\JPG\text.txt");
    InputStreamReader sir = new InputStreamReader(fistest, "utf-8");
    char[] buffer = new char[12];
    int len1 = 0;
    while ((len1 = sir.read(buffer)) != -1) {
    // 以不同的格式的编码读出来
    System.out.println(new String(buffer, 0, len1));
    }
    sir.close();
    }

    /**
    * 标准流的操作
    */

    public void StandFile() throws Exception {
    FileReader reder = null;
    try {
    reder = new FileReader("D:\java\JPG\text.txt");
    char[] buf = new char[1204];
    int len = 0;
    while ((len = reder.read(buf)) != -1) {
    System.out.print(new String(buf, 0, len));
    }
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } finally {
    if (reder != null) {
    reder.close();
    }
    }
    }

    /**
    * 字符流的输出 写入一个文件
    */
    @Test
    public void testFileWriter() {
    FileWriter fil = null;
    try {
    //false替换 true 追加
    fil = new FileWriter("D:\java\JPG\test.txt", true);
    for (int i = 0; i < 100; i++) {
    fil.write("Tom" + i + ";");
    }
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    if (fil != null) {
    try {
    //如果不close不清理缓冲区 进不到方法里面
    fil.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

    }

    /**
    * 测试字符缓冲区输入流 讀取行
    */
    @Test
    public void testBufferStream() throws Exception {
    FileReader reader= new FileReader("D:\java\JPG\text2.txt");
    BufferedReader br = new BufferedReader(reader);
    // 读取行 读到末尾返回空
    String line =null;
    while ((line=br.readLine())!=null){
    System.out.println(line);
    }
    br.close();
    }


    /**
    * 测试不同缓冲区大小的性能
    */
    @Test
    public void testFileXingneng() throws Exception{
    FileReader reader=null;
    BufferedReader br=null;
    for(int size =1024;size <1024 * 1024 *10;size=size * 2){
    br=new BufferedReader(new FileReader("D:\java\JPG\text2.txt"),size);
    long start=System.currentTimeMillis();
    while(br.readLine()!=null){
    System.out.println((size / 1024)+"K:"+ (System.currentTimeMillis()-start));
    }
    reader.close();
    }
    }


    /**
    * 测试skip功能
    * @throws Exception
    */

    @Test
    public void testFileguidang() throws Exception{
    FileInputStream br = new FileInputStream("D:\java\JPG\text2.txt");
    System.out.println((char)br.read());
    br.skip(-1);
    System.out.println((char)br.read());
    System.out.println((char)br.read());
    br.close();

    }
    }

  • 相关阅读:
    1.2 JAVA的String类和StringBuffer类
    1.7 JAVA异常总结
    2.1 JQuery框架(封装JavaScript框架)
    1.6 JSON存储数据方式(JavaScript对象表示法)
    1.33 JavaScript之HTML的DOM(三)
    1.32 JavaScript的BOM(二)
    【转】SQL 生成连续字符
    木兰国产编程语言 Mulan--附带下载地址
    【python】两行代码实现近百年的正反日期查询--20200202
    Linux下扫描服务器IP地址是否冲突(arp-scan)
  • 原文地址:https://www.cnblogs.com/simly/p/11049739.html
Copyright © 2011-2022 走看看