Java核心类库-IO-字节数组流/内存流

内存流(数组流):

  把数据先临时存在数组中,待会再从数组中获取出来。

  1. 字节内存流:ByteArrayInputStream/ByteArrayOutputStream

  2. 字符内存流:CharArrayInputStream/CharArrayOutputStream

  3. 字符串流:StringReader/StringWriter(把数据存放在数组中)

字节内存流:

public class ByteArrayDemo {
    public static void main(java.lang.String[] args) throws Exception {
        //字节数组输出流:程序到内存
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        bos.write("ABCD".getBytes());
        //使用存储的临时数据
        byte[] buffer = bos.toByteArray();

        //字节数组输入流:内存到程序
        ByteArrayInputStream bis = new ByteArrayInputStream(buffer);
        byte[] bys = new byte[1024];
        int len = -1;
        while ((len = bis.read(bys)) != -1) {
            System.out.print(new java.lang.String(bys,0,len));
        }
        bos.close();
        bis.close();
    }
}

字符数组流:与字节操作大致相同。

字符串流:

 1 public class StringWriterReaderDemo {
 2     public static void main(String[] args) throws IOException {
 3         //字符串的输出流
 4         StringWriter stringWriter = new StringWriter();
 5         stringWriter.write("你多大了?");
 6         stringWriter.write("21岁!");
 7
 8         //字符串的输入流
 9         StringReader stringReader = new StringReader(stringWriter.toString());
10         char[] buffer = new char[1024];
11         int len = -1;
12         while((len = stringReader.read(buffer)) != -1){
13             System.out.println(new String(buffer,0,len));
14         }
15     }
16 }
时间: 2024-10-14 17:08:09

Java核心类库-IO-字节数组流/内存流的相关文章

Java文件与io——字节数组流数据流字符串流

字节数组流 ByteArrayInputStream:包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪read方法要提供的下一个字节.关闭ByteArrayInputStream无效.此类中的方法在关闭此流后仍可被调用,而不会产生任何IOException. ByteArrayOutputStream:此类中实现了一个输出流.其中的数据被写入一个byte数组.缓冲区会随着数据的不断写入而自动增长.可使用toByteArray()和toString()获取数据.关闭ByteArra

C#字符串、字节数组和内存流间的相互转换 - IT浪潮之巅

定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串=>比特数组 (1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串"); (2)byte[] bt=Convert.FromBase64String("字符串"); 补充: System.Text.Encoding.Unicode.GetBytes(str); System.Text.Encoding.UTF8.GetBytes(

C#字符串、字节数组和内存流间的相互转换

定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串=>比特数组 (1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串"); (2)byte[] bt=Convert.FromBase64String("字符串"); 补充: System.Text.Encoding.Unicode.GetBytes(str); System.Text.Encoding.UTF8.GetBytes(

Java中文件与字节数组转换

注:来源于JavaEye 文件转化为字节数组: http://www.javaeye.com/topic/304980 [c-sharp] view plaincopy /** * 文件转化为字节数组 * * @param file * @return */ public static byte[] getBytesFromFile(File file) { byte[] ret = null; try { if (file == null) { // log.error("helper:the

Java核心类库-IO-包装流概述和缓冲流原理

处理流/包装流(相对于节点流更高级): 1. 隐藏了底层的节点流的差异,并对外提供了更方便的输入/输出功能,让我们之关心高级流操作. 2. 使用处理包装流包装了节点流程序直接操作处理流,让节点流与底层的设备做IO操作. 3. 只需要关闭处理流即可 包装流如何分区:写代码的时候,发现创建对象的时候,需要传递另一个流对象.new 包装流(流对象): 什么是缓冲流: 是一个包装流,目的起缓存作用. BufferedInputStream: BufferedOutputStream: BufferedR

JAVA IO ( 字节流转化为字符流 )

public class Index { public static void main(String[] args) { // 创建文件对象 File f1 = new File("src/字节流_转化成_字符流/text.txt"); File f2 = new File("src/字节流_转化成_字符流/textCopy.txt"); try ( // 创建输入输出流(java1.7开始在这里面的代码会自动关闭) Reader inputStream = ne

[源码]ObjectIOStream 对象流 ByteArrayIOStream 数组流 内存流 ZipOutputStream 压缩流

1.对象流 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputS

Java核心类库-IO-NIO概述

NIO:New IO 从JDK1.4开始提出的,新的IO,可以把一块磁盘文件映射到内存中,我们再去读取内存中的数据. 存放在java.nio包中 Java NIO(New IO)是Java1.4版本开始引入的一个新的IO API,可以替代标准Java IO API现在主要用于服务器中,对于我们写代码依然使用传统的IO就够了. Java NIO提供了与标准IO不同的IO工作方式: Channels and BUffers(通道和缓冲区):标准IO基于字节流和字符流进行操作的,而NIO是基于通道(C

java 读取文件的字节数组

/*文件64位编码*/ public static void main(String[] args) {    byte[] fileByte = toByteArray(newFile);   String imgStr = new BASE64Encoder().encode(fileByte);  } /*读取文件的字节数组*/public static byte[] toByteArray(File file) throws IOException { File f = file; if