本文主要学习DataInputStream、DataOutputStream、PrintStream类。通过IO流存储对象,有时候我们并不需要存储整个对象的信息,只要存储对象的成员数据。这时候就不用ObjectInputStream和ObjectOutputStream的流。PrintStream是打印输出流。接下来小编带大家一起来学习!
数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后应用程序可以使用数据输入流将数据读入。
DataInputStream和DataOutputStream分别继承自InputStream和OutputStream,它属于处理流,需要分别”套接“在InputStream和OutputStream类型的节点流上 DataInputStream和DataOutputStream提供了可以存取与机器无关的Java原始类型数据的方法 DataInputStream和DataOutputStream的构造方法为: DataInputStream(InputStream in) DataOutputStre
DataInputStream:将文件中存储的基本数据类型和字符串写入内存的变量中
来源: https://martinfowler.com/articles/patterns-of-distributed-systems/
1.编写SEI(Service Endpoint Interface),SEI在webservice中称为portType,在java中称为接口。
在Java编程中,学会使用输入输出(I/O)是至关重要的一项技能。输入输出是程序与外部世界交互的桥梁,通过掌握Java的输入输出机制,开发者能够实现数据的读取、写入,处理文件、网络数据等操作。本文将深入介绍Java的输入输出相关知识,包括InputStream、OutputStream、Reader和Writer等流的使用,并通过实例演示其在实际应用中的运用。
DataInputStream.readUTF能读取的数据不是一般的数据,实际使用的也不多,一般会配合DataOutStream.writeUTF配合使用,一般的字符串不要使用readUTF读取,否则就会报EOFException的异常,至于为什么会出现这个问题,看下DataInputStream.readUTF以及DataOutStream.writeUTF的源码来解释下:
中国广东省深圳市望海路半岛城邦三期 518067 +86 13113668890 <netkiller@msn.com>
马 克-to-win:DataInputStream顾名思义:就是专门用来读各种各样的数据的,比如(int,char,long等),一定要注意 DataOutputStream 与DataInputStream配合使用,而且二者读写的顺序要一样,可以参照下面的例子。
DataInputStream和DataOutputStream 继承了各自的FilterInputStream以及FilterOutputStream
本文补充一下Java关于套接字方面的内容,因为其应用相对比较简单,所以下面介绍两个程序实例。
!!!写入顺序不可与读取顺序相反!!! 基本数据处理流<====>文件 与字符流基本相同 完整代码 package cn.hxh.io.other; import java.io.*; public class DataDemo01 { public static void main(String[] args) throws IOException { write("D:/aa/a.txt"); read("D:/aa/a.txt"); } public static voi
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; 8 9 import java.io.FileInputStream; 10 11
new RandomAccessFile()之后,若文件不存在会自动创建,存在则不创建。——该类其实内部既封装了字节输入流,又封装了字节输出流。 该类若用write()方法写整数,每次只写它的最后一个字节。而采用writeInt()方法,则可把一个整数完整地写入。
在Java编程世界中,处理文件和数据流是一项常见任务。了解字节流是Java中文件和数据处理的关键部分之一。本篇博客将从零开始,为初学者详细介绍Java字节流,从基础概念到高级应用,帮助你成为字节流的专家。
为什么要分层呢?因为整个网络协议非常复杂,要涉及到方方面面的知识,而且还有对底层硬件的操作,利用分层的思想,我们可以将复杂的通信协议分割成一层层的形式,上一层可以调用下一层,而与再下一层不发生关系,各层之间互不影响,便于系统的开发。我们把用户程序作为最高层,把物理通信线路作为最底层,高层到底层一步步封装,我们不需要直接操作底层,而是操作最简单的最高层,这就是分层的意义。
客户端存根Stub:存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方。
该文介绍了Java中byte、byte数组和int、long之间的转换方法。包括使用ByteBuffer、ByteOrder、Integer.BYTES、Long.BYTES、UTF-8、Integer.MAX_VALUE和Long.MAX_VALUE等方法。
这个类主要用来表示IP地址,有两个子类:Inet4Address和Inet6Address
序列化是指把Java对象保存为二进制字节码的过程,Java反序列化是指把二进制码重新转换成Java对象的过程
查看历史文章,请点击上方链接关注公众号。 本节我们介绍在Java中如何以二进制字节的方式来处理文件,上节我们提到Java中有流的概念,以二进制方式读写的主要流有: InputStream/OutputStream: 这是基类,它们是抽象类。 FileInputStream/FileOutputStream: 输入源和输出目标是文件的流。 ByteArrayInputStream/ByteArrayOutputStream: 输入源和输出目标是字节数组的流。 DataInputStream/DataOutpu
2020年伊始,新冠病毒席卷全国,对人们的生活造成了严重的影响,成为了人们最受关注的话题。新冠病毒起源于武汉华南海鲜市场,在发现该冠状病毒具有传染性后,武汉作为国内第一个采取了应对措施的城市,然而由于该病毒具有高传染性、潜伏期长并且潜伏期可传染等特点,依然使得武汉成为了重灾区,具有大量的人员被该病毒感染。
马克-to-win:一定要注意DataOutputStream 与DataInputStream必须配合使用,以便将基本数据类型(int,char,long,String等)写入一个数据流。详细讲解请见下面的DataInputStream部分。
该文介绍了如何利用Java实现基于TCP的客户端和服务器端通信。客户端和服务器端通过TCP进行通信,服务器端监听端口,客户端通过Socket连接到服务器端进行通信。具体实现包括创建Server和Client类,以及实现线程安全的ServerSocket类。客户端和服务器端的通信通过UTF-8编码。
1、实例化 DataInputStream(InputStream in) 参数是一个字节输入流 DataOutputStream(OutputStream out) 参数是一个字节输出流 演示 DataInputStream dis = new DataInputStream(new FileInputStream("D:/test/girl.jpg")); DataOutputStream dos = new DataOutputStream(new FileOutputStream("D:/tes
(2)由套接字对象Socket调用getInputStream()或getOutputStream()方法,分别返回具有套接字通信的基础输入流InputStream和输出流OutputStream对象作为参数,完成绑定套接字通信的输入流和输出流对象的创建。
由于TCP需要两个用户之间建立连接才可以发送消息所以如果像UDP那样直接开启两个线程一个发送一个接受的话,用户一就会因为发送端开启但是连接不到接收端而无法发送。 所以就要在发送端加一个条件,当socket连接上接收端都才能进行下面的操作。
装饰器模式主要解决继承关系过于复杂的问题,通过组合来替代继承。它主要的作用是给原始类添加增强功能。这也是判断是否该用装饰器模式的一个重要的依据。除此之外,装饰器模式还有一个特点,那就是可以对原始类嵌套使用多个装饰器。为了满足这个应用场景,在设计的时候,装饰器类需要跟原始类继承相同的抽象类或者接口。
1.读取txt文件,然后从数据库从查询数据,并且写到txt文件中 public void getPhonehId() { List<String> list = new LinkedList<>(); //1读取数据库中得图片 try { String encoding = "GBK"; File file = new File("C:\\Users\\Administrator\\Desktop\\name.
1)IP地址:唯一标识网络上的每一台计算机,两台计算机之间通信的必备要素。 2)端口号:计算机中应用的标号(代表一个应用程序),0-1024系统使用或保留端口,端口号占2个字节,所以有效端口0-65535. 3)通信协议:通信的规则TCP,UDP 4)注意:在通信协议相同的情况下,端口号才是唯一的。
这个系列的文章是为了探讨Java字节码是什么样的结构,如何能够准确的表达我们代码的含义。
UDP是一种面向无连接的协议,因此传输过程中不能保证数据的完整性。jdk提供了网络通信包,在java.net包下提供了两个类DatagramPacket和DatagramSocket来实现UDP通信。这两个类可以这样理解,DatagramSocket是路,DatagramPacket路上装有人的车。也就是DatagramSocket决定了通信目标,DatagramPacket则代表封装好的数据。
当对一个事物进行抽象的时候,会出现一个父类,很多子类的情况。而且新添加子类时是不容易的,也就是说不易扩展。
程序的性能受到代码质量的直接影响。这次主要介绍一些代码编写的小技巧和惯例。虽然看起来有些是微不足道的编程技巧,却可能为系统性能带来成倍的提升,因此还是值得关注的。
流 JAVA /IO 基本小结 通过一行常见的代码讨论:new BufferedReader(new InputStreamReader(System.in))
当输入期间意外终止文件或流时,将抛出“EOFException”。 以下是抛出EOFException异常的一个示例,来自JavaBeat应用程序:
当生活像一首歌那样轻快流畅时,笑颜常开乃易事;而在一切事都不妙时仍能微笑的人,是真正的乐观。——威尔科克斯 曾经我们使用java的IO流复制文件时是这么写的 package com.ruben; import java.io.*; import java.util.Optional; /** * @ClassName: FileDemo * @Description: 我还没有写描述 * @Date: 2021/1/10 0010 21:38 * * * @author: <achao1
基于TCP的网络编程功能:模拟网站的登录,客户端录入账号密码,然后服务器端进行验证。一、功能分解1:单向通信功能:客户端发送一句话到服务器客户端:public class TestClient {//客户端 //这是一个main方法,是程序的入口: public static void main(String[] args) throws IOException { //1.创建套接字:指定服务器的ip和端口号: Socket s = new Socket("192
新建两个工程,一个客户端,一个服务端,先启动服务端再启动客户端。两个工程的读写操作线程类基本上完全相同。
IO File类 作用 访问和操作文件的类 创建方式 File file = new File( String pathname ); 常用方法 boolean exists( )//判断文件是否存在 boolean isFile( )//判断是否是文件 boolean isDirectory( )//判断是否为文件目录 String getPath( )//获取相对路径 String getAbsolutePath( )//获取绝对路径 String getName( )//获取文件或者目录的名称 boo
Socket为“孔”或“插座”,创建Socket,打开连接Socket的输入或输出流,对Socket进行读写,关闭Socket。
流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。
对程序语言的设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务。任务的难度大多数来自于要覆盖所有的可能性,不仅存在各种 I/O 源端和想要与之通信的接收端(如文件、控制台、网络链接等),而且还需要以多种不同的方式与它们进行通信(如顺序、随机存取、缓冲、二进制、按字符、按行、按字等)。Java 类库的设计者通过创建大量的类(装饰模式)来解决这个难题。自从 Java 1.0 版本以来,Java 的 I/O 类库发生了明显的变化,在原来面向字节的类中添加了面向字符和基于 Unicode 的类;在 JDK 1.4 中,添加了nio类,以改进 I/O 的性能及功能。
领取专属 10元无门槛券
手把手带您无忧上云