java中数据输入/输出流

devtools/2024/12/21 18:57:20/

1、介绍

数据输入/输出流(DataInputStream类与DataOutputStream类)允许应用程序以与机器无关的方式从底层输入流中读取基本java数据类型。当读取一个数据时,不必再关心这个数值应当是哪种字节。

2、DataInputStream类与DataOutputStream类的构造方法如下

  • DataInputStream(InputStream in):使用指定的基础InputStream创建一个DataInputStream
  • DataOutputStream out):创建一个新的数据输出流,将数据写入指定基础输出流。DataOutputStream类提供了如下3种写入字符串的方法。
  1. writeBytes(String s )
  2. writeChars(String s)
  3. writeUTF(String s)

因为java中字符是Unicode编码,双字节的。writeBytes只是将字符串中的每一个字符的低字节内容写入目标设备中,而writeChars将字符串的每一个字符的两个字节的内容都写到目标设备中,writeUTF将字符串按照UTF编码后的字节长度写入目标设备,然后才是每一个字节的UTF编码。

说明:DataInputStream类只提供一个readUTF()方法返回字符串,这是因为要在一个连续的字节流读取一个字符串,如果没有特殊的标记作为一个字符串的结尾,并且不知道这个字符串的长度,就无法知道读取到什么位置才是这个字符串的结束。DataOutputStream类中只有writeUTF()方法向目标设备中写入字符串的长度,所以也能准确地读回写入字符串。

3、程序代码(列子)

java">import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;public class DataOutInputStream {public static void main(String[] args){try{FileOutputStream outputStream=new FileOutputStream("word.txt");//创建 FileOutputStream对象DataOutputStream dataOutputStream=new DataOutputStream(outputStream);//创建DataOutputStream对象dataOutputStream.writeUTF("使用writeUTF()方法写入数据");//写入磁盘数据dataOutputStream.writeChars("使用writeChars()方法写入数据");dataOutputStream.writeBytes("使用writeBytes()方法写入数据");dataOutputStream.close();//将DataOutputStream流关闭outputStream.close();//将FileOutputStream流关闭FileInputStream inputStream=new FileInputStream("word.txt");//创建FileInputStream对象DataInputStream dataInputStream=new DataInputStream(inputStream);//创建DataInputStream对象System.out.println("数据文件信息输出:"+dataInputStream.readUTF());//将文件数据输出}catch (Exception e){e.printStackTrace();//处理异常信息}}
}

4、程序运行结果


http://www.ppmy.cn/devtools/144153.html

相关文章

深度学习-74-大语言模型LLM之基于API与llama.cpp启动的模型进行交互

文章目录 1 大模型量化方法1.1 GPTQ(后训练量化)1.2 GGUF(支持CPU)1.3 AWQ(后训练量化)2 llama.cpp2.1 功能2.1.1 Chat(聊天)2.1.2 Completion(补全)2.2 运行开源LLM2.2.1 下载安装llama.cpp2.2.2 下载gguf格式的模型2.2.3 运行大模型3 API访问3.1 调用补全3.2 调用聊天3.3 提取…

【学习笔记】深入浅出详解Pytorch中的View, reshape, unfold,flatten等方法。

文章目录 一、写在前面二、Reshape(一)用法(二)代码展示 三、Unfold(一)torch.unfold 的基本概念(二)torch.unfold 的工作原理(三) 示例代码(四&a…

[SZ901]JTAG高速下载设置(53Mhz)

SZ901最高支持JTAG 53MHz的时钟频率,下载bit文件和固化程序的速度提升非常明显。 首先设置参数 1,将JTAG0 分频系数修改为3 2,设置参数,更新参数。(完成) 打开VIVADO VIVADO 正常识别FPGA,速…

【ArcGIS Pro】做个宽度渐变的河流符号

如上图如示,河流线的宽度是渐变的,上游细下游粗,可以很好的表达水量。 准备数据: 准备河流线图层如下: 实现方法: 1、点击线符号,在符号系统中,选择【属性-结构-图层-添加图层】&a…

深入探索Flink的复杂事件处理CEP

深入探索Flink的复杂事件处理CEP 引言 在当今大数据时代,实时数据处理变得愈发关键。Apache Flink作为一款强大的流处理框架,其复杂事件处理(CEP)组件为我们从海量实时数据中提取有价值信息提供了有力支持。本文将详细介绍Flink…

向量的叉乘+Vector3补充+四元数

反三角函数相关知识: float a Mathf.Asin(0.5f) * Mathf.Rad2Deg; Debug.Log("a:" a); 运行结果如下: 向量的叉乘 几何角度:两个向量叉乘,得到一个新的向量,新向量跟原始两个向量都垂直,也就…

深度学习的可解释性研究

深度学习的可解释性研究是一个多维度、跨学科的领域,旨在提高模型的透明度和理解性,以便更好地服务于人类社会。这一研究方向不仅在理论上具有重要意义,而且在实际应用中也具有广泛的价值,特别是在信息推送、医疗研究、金融和信息…

DeepSeek-V2的多头潜在注意力机制及其在开源Mixture-of-Experts (MoE)语言模型中的应用

DeepSeek-V2的多头潜在注意力机制及其在开源Mixture-of-Experts (MoE)语言模型中的应用 DeepSeek-V2的架构及其优势 DeepSeek-V2的架构及其优势可以从几个关键方面进行深入探讨: 1. 架构设计 DeepSeek-V2是一个基于Mixture-of-Experts(MoE&#xff0…