数据流和ByteArray
问题:如何把一个long类型的数写进一个文件里
所以现在有DataInputStream和DataOutputStream
这两个是节点流
例子代码:
import java.io.*; public class TestDataStream {
public static void main(String[] args) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();//这句话里执行了两个操作,首先在内存里分配了个字节数组。然后这里你看有一个OutputStream所以有一个管道,这个管道已经插在了内存里的这个字节数组上了。
DataOutputStream dos = new DataOutputStream(baos);//dos是个管道套在上面那个ByteArrayOutputStream上,通过dos可以直接把一个数写进去,比如double型的字节数组里面直接就占了八个字节,而不用再转成字符串再写进去。
try {
dos.writeDouble(Math.random());
dos.writeBoolean(true);//这步结束后字符数组有九个字节了
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());//baos是个管,连接字节数组的管,通过这个方法,我们就可以拿到这个管关于字节数组的引用
System.out.println(bais.available());//这个方法是说 这个bais里面有多少个字节可以供我们读
DataInputStream dis = new DataInputStream(bais);//本来通过bais往外读只能一个字节一个字节地往外读,那都出来谁知道是什么。所以现在套一个DataInputStream,就可以往外读double啊boolean什么的
System.out.println(dis.readDouble());//一定注意!!先写的先读,你先写进去一个double,八个字节,那么先读double,直接读八个字节的double出来。
System.out.println(dis.readBoolean());//实际上是读一个字节然后内部进行转换把它转换成boolean类型。
dos.close();
dis.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
数据流和ByteArray的更多相关文章
- ByteArrary(优化数据存储和数据流)
原地址:http://www.unity蛮牛.com/blog-1801-799.html 首页 博客 相册 主题 留言板 个人资料 ByteArrary(优化数据存储和数据流) 分类:unity ...
- 【python】bytearray和string之间转换,用在需要处理二进制文件和数据流上
最近在用python搞串口工具,串口的数据流基本读写都要靠bytearray,而我们从pyqt的串口得到的数据都是string格式,那么我们就必须考虑到如何对这两种数据进行转换了,才能正确的对数据收发 ...
- Java:IO流其他类(字节数组流、字符数组流、数据流、打印流、Properities、对象流、管道流、随机访问、序列流、字符串读写流)
一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read ...
- flash从数据流判断图片格式防止xss攻击
前段时间测试人员报了一个flash的xss bug,经分析用了Loader.loadBytes且没做数据流格式校验的程序都会中招,自测方法只需一行代码: ExternalInterface.call( ...
- angular2系列教程(九)Jsonp、URLSearchParams、中断选择数据流
大家好,今天我们要讲的是http模块的第二部分,主要学习ng2中Jsonp.URLSearchParams.observable中断选择数据流的用法. 例子
- Android Bitmap 和 ByteArray的互相转换
Android Bitmap 和 ByteArray的互相转换 移动平台图像处理,需要将图像传给native处理,如何传递?将bitmap转换成一个 byte[] 方便传递也方便cpp代码直接处理图像 ...
- 《连载 | 物联网框架ServerSuperIO教程》- 10.持续传输大块数据流的两种方式(如:文件)
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- [LeetCode] Data Stream as Disjoint Intervals 分离区间的数据流
Given a data stream input of non-negative integers a1, a2, ..., an, ..., summarize the numbers seen ...
- [LeetCode] Find Median from Data Stream 找出数据流的中位数
Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...
随机推荐
- win8系统 如何不显示这台电脑的文件夹
在win8系统中,默认有下面这种文件夹 只要打开注册表编辑器,找到下面所示的项目,删除所有子文件夹即可(最后剩下一个DelegateFolders不用管) [HKEY_LOCAL_MACHINE\ ...
- strtok函数
strtok函数是cstring文件里的函数 strtok函数是cstring文件里的函数 其功能是截断字符串 原型为:char *strtok(char s[],const char *delin) ...
- POJ 3368 Frequent values RMQ ST算法/线段树
Frequent values Time Limit: 2000MS Memory Lim ...
- bzoj2101【Usaco2010 Dec】Treasure Chest 藏宝箱
2101: [Usaco2010 Dec]Treasure Chest 藏宝箱 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 418 Solved: ...
- java 内存简介
java程序对内存分配的方式一般有三种: (1) 从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量. (2) 在栈上创建. 在执行函数时,函数内局 ...
- 迭代器-iteration
class CoffrrIterator implements Iterator<Coffee> { int cunt = size; public boolean hasNext() { ...
- Lightoj 1017 - Brush (III)
1017 - Brush (III) PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Sam ...
- YTU 2438: 三人三鬼
2438: 三人三鬼 时间限制: 1 Sec 内存限制: 128 MB 提交: 35 解决: 9 题目描述 目标是将东岸的3人3鬼通过一只小船转移到西岸,希望以尽可能少的摆渡次数. 船的容量有限, ...
- YTU 2437: C++ 习题 比较大小-类模板
2437: C++ 习题 比较大小-类模板 时间限制: 1 Sec 内存限制: 128 MB 提交: 1144 解决: 805 题目描述 声明一个类模板,利用它分别实现两个整数.浮点数和字符的比较 ...
- Managing SQLite Database
Approach #1: Use a Singleton to Instantiate the SQLiteOpenHelper Declare your database helper as a s ...