(java转大数据)(java转大数据职业规划)

/**

* 数据字节流DataInputStream/DataOutputStream

* 处理流,提供对java基础数据类型及String的存取方法,数据可以通过数据流直接存取,不需要手动转换类型

*/

public class DataStream1 {

public static void main(String[] args) {

try(DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("iostream/testData")))){

//数据流为字节处理流,需要传入字节节点流,在节点流外套一层缓冲流提高效率

dos.writeBoolean(true);

//直接写入基础数据类型

//.writeBoolean()方法将占1bit的boolean值前面增加7个0组成byte存储,true为00000001,false为00000000

dos.writeByte(255);

//.writeByte()方法会将byte直接写入,占1字节的255为11111111

dos.writeChar('a');

//.writeChar()方法会将char按2字节写入,a为97,存储为00000000 01100001

dos.writeDouble(Math.random());

//double占8字节,存储过程不占用额外空间,将double数值原样保存

dos.writeLong(124L);

//long占8字节

dos.writeUTF("直接写入字符串使用.writeUTF方法");

dos.flush();

}catch (Exception e){

e.printStackTrace();

}

//如果用记事本txt直接打开结果为: a??? | *鐩存帴鍐欏叆瀛楃涓蹭娇鐢?writeUTF鏂规硶

//每种数据存储占用空间不相同,当要读取这些数据时需要使用DataInputStream按存储的顺序来读

try(DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream("iostream/testData")))){

//读取必须按照存储的顺序调用读取方法

boolean bo = dis.readBoolean();

//将数据取出直接转换为存储时的数据类型

//如果使用.read()会返回1,且指针同样会转到第二个字节

byte by = dis.readByte();

//.readByte()方法会调用.read(),返回255,如果直接使用.read()也会返回255,byte的读取为0-255,没有负数,如果对65535读取readShort()会返回-1

char ch = dis.readChar();

//如果使用.read()需要两次才能读完char,第一次结果为0,第二次为97,对应字符'a'占用两字节

double dou = dis.readDouble();

//double占8字节,执行8次read()才能将指针移至下一个数据

long lo = dis.readLong();

String st = dis.readUTF();

System.out.println(bo+"\t"+by+"\t"+ch+"\t"+dou+"\t"+lo+"\t"+st);

//结果为true -1 a 0.9184927814592927 124 直接写入字符串使用.writeUTF方法

}catch (Exception e){

e.printStackTrace();

}

//dos.writeChars(".writeChars()方法会将传入的字符串分割成字符顺序存储,在.readChar()时需要一个一个的读取");

//数据流写入基础数据类型会将数据按其二进制的值直接存储,不进行修改(除boolean扩容至8bit),而记事本之所以读取不正确是因为调用了字符集,按字符集的规则(gbk读2字节作为一个字符,UTF-8读3字节作为一个字节)进行解码

//而基础数据类型是直接写入的,没有经过编码,byte的255就是11111111只占1个字节,char的'a'是00000000 01100001占了2个字节,所以无论何种字符集都无法正确读取内容

}

}

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者虚云幻仙所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(java转大数据)(java转大数据职业规划)
本文链接:https://www.51qsb.cn/article/m9hdf.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-07-17
下一篇2023-07-17

你可能还想知道

发表回复

登录后才能评论