Java之IO系列--字节内存流(ByteArrayInputStream与ByteArrayOutputStream)

原文网址:Java之IO系列--字节内存流(ByteArrayInputStream与ByteArrayOutputStream)_IT利刃出鞘的博客-CSDN博客

简介

说明

        本文介绍Java的字节内存流的用法。

概述

        如果要进行IO操作,但是不生成文件,就可以使用内存来实现输入与输出的操作。

对于内存流,java.io包里面提供了两组操作:

  • 字节内存流:ByteArrayInputStream、ByteArrayOutputStream
  • 字符内存流:CharArrayReader 、CharArrayWriter

        以下是以字节内存流操作为主;重点看一下ByteArrayInputStream、ByteArrayOutputStream的继承结构与构造方法:

Java之IO系列--字节内存流(ByteArrayInputStream与ByteArrayOutputStream)_第1张图片

粉丝福利:很多粉丝私信问我有没有Java的面试及PDF书籍等资料,我整理了一下,包含:真实面试题汇总、简历模板、PDF书籍、PPT模板等。这些是我自己也在用的资料,面试题是面试官问到我的问题的整理,其他资料也是我自用的,真正实用、靠谱。资料可以从这里免费获取:资料地址 

示例:小写字母转换大写字母

需求

使用字节内存流,将“"Hello World ~ !"转为大写字母。

代码

package com.example.a;

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
        String str = "Hello World ~ !";
        InputStream input = new ByteArrayInputStream(str.getBytes());
        OutputStream output = new ByteArrayOutputStream();

        int readResult = 0 ;
        while ((readResult = input.read()) != -1) {
            output.write(Character.toUpperCase(readResult));
        }
        System.out.println(output);
        input.close();
        output.close();
    }
}

结果

HELLO WORLD ~ !

示例:合并两个文件的内容

需求

使用内存字节流,将两个文件的内容读出来,然后合并到内存中。

代码

package com.example.a;

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
        File file1 = new File("D:" + File.separator + "Document"
                + File.separator + "Document" + File.separator + "test1.txt");
        File file2 = new File("D:" + File.separator + "Document"
                + File.separator + "Document" + File.separator + "test2.txt");

        InputStream input1 = new FileInputStream(file1);
        InputStream input2 = new FileInputStream(file2);

        ByteArrayOutputStream output = new ByteArrayOutputStream();

        int temp = 0;
        while ((temp = input1.read()) != -1) {
            output.write(temp);
        }
        while ((temp = input2.read()) != -1) {
            output.write(temp);
        }

        byte[] data = output.toByteArray();

        output.close();
        input1.close();
        input2.close();
        System.out.println(new String(data));
    }
}

你可能感兴趣的:(Java编程,java,jvm,开发语言)