java--内存流(四)
【摘要】
java--内存流(四)
一、内存流--字节流
之前的文件操作流是以文件的输入输出为主的,当输出的位置变成了内存,那么就称为内存操作流。此时得使用内存流完成内存的输入和输出操作。如果程序运行过程中要产生一些临时文件,可采用虚拟文件方式实现;
直接操作磁盘的文件很耗性能,使用内存流可以提升性能;jdk里提供了内存流可实...
java--内存流(四)
一、内存流--字节流
- 之前的文件操作流是以文件的输入输出为主的,当输出的位置变成了内存,那么就称为内存操作流。此时得使用内存流完成内存的输入和输出操作。
- 如果程序运行过程中要产生一些临时文件,可采用虚拟文件方式实现;
- 直接操作磁盘的文件很耗性能,使用内存流可以提升性能;jdk里提供了内存流可实现类似于内存虚拟文件的功能。
- ByteArrayInputStream:将内容写到内存中
- ByteArrayOutputStream:将内存中的数据写出
- ByteArrayInputStream:构造方法:
- public ByteArrayInputStream(byte[] buf):全部内容
- public ByteArrayInputStream(byte[] buf,int offset,int length):指定范围的内容
- ByteArrayOutputStream:
public ByteArrayOutputStream()
内存--字节流实例
-
package io;
-
-
import java.io.ByteArrayInputStream;
-
import java.io.ByteArrayOutputStream;
-
import java.io.IOException;
-
-
/**
-
* 内存流可以不用关闭
-
*
-
*/
-
public class ByteStreamDemo {
-
public static void main(String[] args) throws IOException {
-
-
String data = "java,i love you!";
-
//保存到内存中去.//程序-->内存
-
ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
bos.write(data.getBytes());
-
-
//把我存到内存的数据取出来
-
-
//内存 --> 程序
-
-
//byte[] toByteArray() 创建一个新分配的 byte 数组。
-
-
byte[] bys = bos.toByteArray();//真正的数据
-
ByteArrayInputStream bis = new ByteArrayInputStream(bys);
-
-
byte[] b= new byte[1024];
-
int len = 0;
-
while((len = bis.read(b)) != -1){
-
String str = new String(b,0,len);
-
System.out.println(str);
-
}
-
}
-
}
二、内存流--字符流
- CharArrayReader
- CharArrayWriter
- 此类实现一个可用作 Writer 的字符缓冲区。缓冲区会随向流中写入数据而自动增长。可使用 toCharArray() 和 toString() 获取数据。
内存流--字符流实例
package io; import java.io.CharArrayReader; import java.io.CharArrayWriter; import java.io.IOException; /** * 内存流不用关闭 */ public class CharArrayDemo { public static void main(String[] args) throws IOException { String data = "成都,好地方"; //程序 -> 内存 CharArrayWriter cw = new CharArrayWriter(); cw.write(data);//FileOutputStream char[] cs = cw.toCharArray();//取出内存输出流的数据 System.out.println(cs.length); //把内存的数据 ---> 程序 CharArrayReader cr = new CharArrayReader(cs); char[] buff = new char[1024]; int len = 0; while((len = cr.read(buff)) != -1){ System.out.println(new String(buff,0,len)); } } }
文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。
原文链接:brucelong.blog.csdn.net/article/details/80052945
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)