public class ByteArrayInputStream extends InputStream

ByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。内部计数器跟踪

read 方法要提供的下一个字节。

关闭 ByteArrayInputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何

IOException。

public class ByteArrayOutputStream extends OutputStream

此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用

toByteArray() 和 toString() 获取数据。

关闭 ByteArrayOutputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何

IOException。

流的来源或目的地并不一定是文件,也可以是内存中的一块空间,例如一个字节数组。

java.io.ByteArrayInputStream、java.io.ByteArrayOutputStream

就是将字节数组当作流输入来源、输出目的地的类。

java.io.ByteArrayInputStream将一个字节数组当作流输入的来源,而java.io.ByteArrayOutputStream则可以将一个字节数组当作流输出目的地。

ByteArrayInputStream和ByteArrayOutputStream,用于以IO流的方式来完成对字节数组内容的读写,来支持类似内存虚拟文件或者内存映射文件的功能

import java.io.BufferedReader;

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

public class ByteArrayStreamTest

{

public static void main(String[] args) throws IOException

{

String str = "guowuxin";

// 相对比 InputStream in = socket.getInputStream() //获取网络输入流

// InputStream in = new FileInputStream(new File("src.txt")); //获取文件输入流

// BufferedReader br = new BufferedReader(new

// InputStreamReader(System.in))

// InputStream构造函数不需要任何参数,数据来源要么来自于网络,要么来自于文件,要么来自于控制台

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes());

// OutputStream out = socket.getOutputStream() //获取网络输出流

// OutputStream out2 = new FileOutputStream(new File("res.txt"));

ByteArrayOutputStream out = new ByteArrayOutputStream();

transform(in, out);

byte[] result = out.toByteArray();

System.out.println(out);

// ByteArrayOutputStream 的toString方法

// public synchronized String toString() {

// return new String(buf, 0, count);

// }

System.out.println(new String(result));

transform(System.in, System.out); // 从键盘读,输出到显示器

in.close();

out.close();

}

public static void transform(InputStream in, OutputStream out)

{

int ch = 0;

try

{

while ((ch = in.read()) != -1)

{

int upperChar = Character.toUpperCase((char) ch);

out.write(upperChar);

}

return;

}

catch(Exception e)

{

e.printStackTrace();

}

}

}

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.URL;

/**

* @author 作者 E-mail:

* @version 创建时间:2015-10-3 下午04:24:07 类说明

*/

public class HttpClient1

{

public static void main(String[] args)

{

try

{

URL url = new URL("http://www.baidu.com");

InputStream in = url.openStream();

ByteArrayOutputStream output = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len = -1;

while ((len = in.read(buffer)) != -1)

{

output.write(buffer, 0, len);

}

System.err.println(new String(output.toByteArray()));

}

catch(IOException ex)

{

ex.printStackTrace();

}

}

}

java inputstream字节流_Java输入输出流ByteArrayInputStream和ByteArrayOutPutStream相关推荐

  1. java io字符输出流_灵魂一击!详解Java中的IO输入输出流

    什么是流?流表示任何有能力产生数据的数据源对象或者是有能力接收数据的接收端对象,它屏蔽了实际的I/O设备中处理数据的细节. IO流是实现输入输出的基础,它可以很方便地实现数据的输入输出操作,即读写操作 ...

  2. java怎么创建输入输出流_Java输入输出流

    1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...

  3. java读取输出流_Java输入输出流

    1什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作.Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数 ...

  4. java输入输出流总结_Java输入输出流总结

    InputStream(字节输入流)  OutputStream(字节输出流)  Reader(字符输入流)  Writer(字符输出流)都是抽象类,所以不可以直接new:它们是各大输入输出流的父类. ...

  5. java的 I/O 输入输出流详解

    I/O 输入输出流 流的定义: 流就是程序和设备之间嫁接起来的一根用于数据传输的管道,这个管道上有很多按钮,不同的按钮可以实现不同的功能. 这根用于数据传输的管道就是流,流就是一根管道 流一定是类,但 ...

  6. 【Java基础】Java IO编程:输入输出流、内存流、打印流、缓冲流BufferedReader、扫描流Scanner、序列化与反序列化

    文章目录 第11章.Java IO编程 11.1 文件操作类:File 11.2 字节流与字符流 字节输出流:OutputStream OutputStream类 FileOutputStream类 ...

  7. Java基础知识(七) 输入输出流

    Java基础知识 输入输出流 1. Java IO流的实现机制是什么 2. 管理文件和目录的类是什么 3. Java Socket是什么 4. Java NIO是什么 5. 什么是Java序列化 6. ...

  8. java之九 基本输入输出流

    流的概念 视频课堂:[免费]JAVA面向对象高级编程-1-数组的学习-张晨光的在线视频教程-CSDN程序员研修院 Java程序通过流来完成输入/输出.流是生产或消费信息的抽象.流通过Java的输入/输 ...

  9. 第八次 java实验 紫金学院 输入/输出流

    一.实验目的 熟悉流--输入/输出流的基本概念. 掌握常用输入/输出流的使用. 掌握文件与文件字节流操作(重点). 二.实验原理及说明 在Java中把不同的数据源和程序间的数据传输(输入和输出或者数据 ...

最新文章

  1. osi 模型 tcpip网络模型
  2. 28.构造函数中,成员变量一定要通过初始化列表来初始化的?
  3. Windows Server 2008 的十四大最新功能特性技术总结
  4. 树莓派AI视觉云台——3、树莓派系统的启动
  5. C++中的指针与引用
  6. 【渝粤题库】广东开放大学 Linux 形成性考核
  7. 函数调用关系图如何画_程序是如何在 CPU 中运行的(二)
  8. android studio按钮槽函数,AndroidStudio按钮Button退出程序
  9. 巨坑:从Sqoop导入MySQL导入TINYINT(1)类型数据到hive(tinyint),数据为null
  10. c语言程序设计教程上海交通,C语言程序设计教程 交通学习文学.pdf
  11. 无责任书评——DOOM启示录 BORLAND传奇
  12. java 文件流 乱码_Java IO流之中文乱码
  13. 小程序在wxml里转数字_微信小程序 之wxml保留小数点后两位数的方法及转化为字符串的方法...
  14. Word 批量添加 图片边框
  15. 美国大选投票系统服务器 在法兰克福,网络投票处理方法,装置及服务器 Internet voting processing method, device and server...
  16. Nginx搭建反向代理服务器
  17. Facebook受邀者的邮箱地址披露
  18. 漏洞系列一一看我一招征服漏洞SSRF
  19. 2020软考成绩查询时间公布
  20. iOS开发:获取WiFi名称(解决iOS12.0以上系统不能正常获取WiFi名称的方法)

热门文章

  1. 如何通过调试的方式搞清楚Angular createEmbeddedView具体创建的UI元素是什么
  2. TypeScript里的完整函数定义语法
  3. 用JavaScript实现的设计模式之commandline(命令行)模式
  4. Hybris Commerce里的持久层
  5. first OData Batch operation when Sales Pipeline is launched
  6. try to navigate from button to line item page
  7. SAP UI5 main page design
  8. how is object structure really created - when the child equipment is downloaded
  9. open external url via transaction launcher sina baidu google web
  10. 如何给BSP application创建指定的mime resource