DataOutputStream&DataInputStream是对输出输入流的扩展,可以直接读写int double等数据类型 下面是今天的练习,细节都写到注释里面了: 1 package Zhang...; 2 3 import java.io.DataInputStream; 4 5 import java.io.DataOutputStream; 6 7 import java.io.File...file.createNewFile(); 24 25 } 26 27 //DataOutputStream&DataInputStream...是对输出输入流的扩展,可以直接读写int double等数据类型 28 29 //采用的设计模式是装饰模式 30 31 DataOutputStream...dos=new DataOutputStream(new FileOutputStream(file)); 32 33 DataInputStream dis=new DataInputStream
前言 本文主要学习DataInputStream、DataOutputStream、PrintStream类。通过IO流存储对象,有时候我们并不需要存储整个对象的信息,只要存储对象的成员数据。...一、DataInputStream类 1.DataInputStream类是数据输入流它和机器无关的操作数据流,读取Java原始的数据。读取一个数值就不必要知道这个数值的多少字节的。...2.DataInputStream类构造方法: public DataInputStream(InputStream in):创建指定的数据输入流读取DataInputStream。...DataInputStream这个类来读取数据!...DataInputStream类是数据输入流它和机器无关的操作数据流,读取Java原始的数据。DataInputStream介绍它的构造方法和方法,DataOutputStream类方法的例子实现。
DataOutputStream 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后应用程序可以使用数据输入流将数据读入。...DataInputStream 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。...demo如下 package com.yudian.io.stream; import java.io.DataInputStream; import java.io.DataOutputStream...t.write(); t.read(); } public void write() throws Exception { String path = "C:\\project\\datainputstream.txt...")); DataInputStream dis = new DataInputStream(instream); double d = dis.readDouble(); boolean
功能简介 DataInputStream和DataOutputStream 继承了各自的FilterInputStream以及FilterOutputStream 使用装饰器模式对InputStream...DataOutput 接口用于将数据从任意 Java 基本类型转换为一系列字节,并将这些字节写入二进制流 DataInputStream和DataOutputStream 通过实现DataInput...和DataOut接口并且借助于装饰器模式,对InputStream和OutputStream的read方法增强出来多个版本可以读取基本数据类型 DataInputStream 继承自InputStream...其余来自DataOutput的方法,都是借助于装饰器模式对于write方法的增强比如 一定要理解装饰器模式是你还有你在使用你的能力的时候,顺便在增强一下,所以内部自然会需要借助于原来的方法 总结: DataInputStream...以及将基本类型数据写入到二进制字节的两个接口 其实如果说要不是别的地方也还是需要DataInput以及DataOutput中的约定的话 这一切完全都可以去掉这两个接口,直接提供readXXX 或者
数据流DataInputStream和DataOutputStream介绍数据流:用来操作基本数据类型和字符串的DataInputStream:将文件中存储的基本数据类型和字符串写入内存的变量中DataOutputStream...:将内存中的基本数据类型和字符串的变量写出文件中利用DataOutputStream向外写出变量:public class Test01 { //这是一个main方法,是程序的入口: public...static void main(String[] args) throws IOException { //DataOutputStream: 将内存中的基本数据类型和字符串的变量...Test02 { //这是一个main方法,是程序的入口: public static void main(String[] args) throws IOException { //DataInputStream...:将文件中存储的基本数据类型和字符串 写入 内存的变量中 DataInputStream dis = new DataInputStream(new FileInputStream(new
2.4 DataInputStream的用法 马 克-to-win:DataInputStream顾名思义:就是专门用来读各种各样的数据的,比如(int,char,long等),一定要注意 DataOutputStream...与DataInputStream配合使用,而且二者读写的顺序要一样,可以参照下面的例子。..."); dos.close(); FileInputStream fis = new FileInputStream("c:/data.txt"); DataInputStream...dis = new DataInputStream(fis); /*1) a data output stream to write data that can late be read
DataInputStream.readUTF能读取的数据不是一般的数据,实际使用的也不多,一般会配合DataOutStream.writeUTF配合使用,一般的字符串不要使用readUTF读取,否则就会报...EOFException的异常,至于为什么会出现这个问题,看下DataInputStream.readUTF以及DataOutStream.writeUTF的源码来解释下: public final...能读取的字符串前面有两个字节是真正要读取的字符串的长度 byte[] bytearr = null; char[] chararr = null; if (in instanceof DataInputStream...) { DataInputStream dis = (DataInputStream)in; if (dis.bytearr.length < utflen...bytearr = new byte[utflen+2]; } out.write(bytearr, 0, utflen+2); //实际写入数据时会在前两个字节写入字符串长度
1、实例化 DataInputStream(InputStream in) 参数是一个字节输入流 DataOutputStream(OutputStream out) 参数是一个字节输出流 演示 DataInputStream...dis = new DataInputStream(new FileInputStream("D:/test/girl.jpg")); DataOutputStream dos = new DataOutputStream...(new FileOutputStream("D:/test/girl2.jpg")); 2、举例 复制图片 try( DataInputStream dis = new DataInputStream
---------------------------------------- 1.Socket对接过程 (注:这是之前在网上见过一张图片,大致过程还是比较清晰的) 分析: Socket对接之后的数据传送类似于文件的读写...; 流套接字采用TCP传输数据流,一旦数据发送失败将重传,所以具有安全无损的特点。...2.实例一【Server->Client(1:1)】 1 package socket; 2 3 import java.io.DataInputStream; 4 import java.io.DataOutputStream...input = new DataInputStream(socket.getInputStream()); 16 DataOutputStream output = new DataOutputStream...input = new DataInputStream( 48 socket.getInputStream()); 49
DataInputStream dataInputStream =null; DataOutputStream dataOutputStream =null...; try { //包括为datainputstream dataInputStream = new DataInputStream...(socket.getInputStream()); //读取数据 String in_data = dataInputStream.readUTF...DataOutputStream dataOutputStream = null; //输入流用于接收数据 DataInputStream...+"郑州"); //接收服务端发送的数据 dataInputStream = new DataInputStream
DataInputStream和DataOutputStream分别继承自InputStream和OutputStream,它属于处理流,需要分别”套接“在InputStream和OutputStream...类型的节点流上 DataInputStream和DataOutputStream提供了可以存取与机器无关的Java原始类型数据的方法 DataInputStream和DataOutputStream的构造方法为...: DataInputStream(InputStream in) DataOutputStream(OutputStream out) import java.io.*; public class...ByteArrayInputStream(baos.toByteArray()); System.out.println(bais.available());//bais中有多少字节 DataInputStream...dis = new DataInputStream(bais); System.out.println(dis.readDouble(
基本数据处理流文件 与字符流基本相同 完整代码 package cn.hxh.io.other; import java.io.*; public class DataDemo01...public static void read(String destPath) throws IOException { File dest = new File(destPath); DataInputStream...dis = new DataInputStream(new BufferedInputStream(new FileInputStream(dest))); int i = dis.readInt...)); dos.writeInt(i); dos.writeLong(l); dos.writeUTF(s); dos.flush(); dos.close(); } } 基本数据处理流...dis = new DataInputStream(new BufferedInputStream(new ByteArrayInputStream(src))); int i = dis.readInt
martinfowler.com/articles/patterns-of-distributed-systems/ 通过将每个状态更改作为命令添加到append only 日志中,从而提供持久性保证,而无需将数据结构刷新到磁盘...问题 即使在服务器存储数据失败的情况下,也需要强大的持久性保证。服务器确认执行某个操作后,即使它故障并失去所有的内存状态,也应该执行该操作。 方案 ? 将每个状态更改作为命令存储在硬盘上的文件中。...= new DataOutputStream(baos); dataInputStream.writeInt(Command.SetValueType); dataInputStream.writeUTF...dataInputStream = new DataInputStream(is); return new SetValueCommand(dataInputStream.readUTF...示例: •所有共识算法(例如Zookeeper和RAFT)中的日志实现类似于预写日志 •Kafka中的存储实现遵循与数据库中的提交日志类似的结构 •所有数据库,包括像Cassandra这样的nosql数据库
读取二进制文件中的 int 数据 DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream...从二进制文件读出 int 数据。...long 型采用 8 个字节保存数据,是 int 的一倍。取值范围这里就不多说了,也会存在溢出现象。...读取二进制文件中的 long 数据 DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream...然后循环取出char数据。
数据流的使用示例Java还提供了数据流(Data Stream)来方便地读写基本数据类型,例如整数、浮点数等。...下面是一个使用DataInputStream和DataOutputStream的示例:使用DataInputStream读取数据import java.io.DataInputStream;import...dataInputStream = new DataInputStream(inputStream)) { int intValue = dataInputStream.readInt...(); double doubleValue = dataInputStream.readDouble(); boolean booleanValue = dataInputStream.readBoolean...了解数据流的使用: 数据流提供了方便的方式读写基本数据类型,适用于处理二进制数据。通过学习Java的输入输出操作,开发者能够更加灵活地处理数据,实现与外部环境的高效交互。
dataInputStream = new DataInputStream(socket.getInputStream()); int id = dataInputStream.readInt...DataInputStream dataInputStream = new DataInputStream(socket.getInputStream()); id = dataInputStream.readInt...DataInputStream dataInputStream = new DataInputStream(socket.getInputStream()); int id...= dataInputStream.readInt(); String name = dataInputStream.readUTF();...DataInputStream dataInputStream = new DataInputStream(socket.getInputStream()); int id
DataInputStream 是用于从输入字节流中读取基本数据类型的类,如整数、浮点数等。...dataInputStream = new DataInputStream(fileInputStream); int number = dataInputStream.readInt...例如,DataInputStream 和 DataOutputStream 允许你读写基本数据类型,而不必手动进行字节操作。...try (DataInputStream dataInputStream = new DataInputStream(new FileInputStream("data.bin")); DataOutputStream...数据类型一致性 在使用 DataInputStream 和 DataOutputStream 读写基本数据类型时,确保数据类型一致。
Socket,向服务器发送请求 5.UDP 协议数据传递细节 5.1UDP 协议数据传递细节 不需要利用 IO 流实现数据的传输 每个数据发送单元被统一封装成数据包的方式,发送方将 数据包发送到网络中...) DataInputStream dis=new DataInputStream(client.getInputStream()); System.out.println(dis.readUTF...dis=new DataInputStream(client.getInputStream()); //从键盘获取数据 String str=br.readLine(); dos.writeUTF...*4.发送数据 */ public class MyChannel implements Runnable{ private DataInputStream dis; private DataOutputStream...2)每个数据发送单元被统一封装成数据包的方式,发送方将数据包发送到网络中,数据包在网络中去寻找他的目的地。
服务端: 1import java.io.BufferedReader; 2import java.io.DataInputStream; 3import java.io.DataOutputStream... dis = null; 55 try{ 56 while(true){ 57 //读取客户端数据 58 ...InputStreamReader(System.in)); 100 String send = br.readLine(); 101 //发送数据... dis = null; 43 try { 44 while(true){ 45 //读取服务器端数据 46...InputStreamReader(System.in)); 88 String send = br.readLine(); 89 //发送数据
领取专属 10元无门槛券
手把手带您无忧上云