Java DataOutputStream Class

Java DataOutputStream class 可以以机器无关方式往指定输出流写入Java原始数据类型,例如int, double, long等。

类定义

public class DataOutputStream extends FilterOutputStream implements DataOutput  

构造函数

DataOutputStream(OutputStream out)

创建一个新的数据输出流往底层输出流写数据

常用函数

int size()                                    返回写入数据输出流字节数
void write(int b)                            写入指定字节
void write(byte[] b, int off, int len)         每次写入len长度字节
void writeBoolean(boolean v)                写入boolean,占1个字节
void writeChar(int v)                        写入char,占2个字节
void writeChars(String s)                    以字符序列方式写入字符串
void writeByte(int v)                        写字节
void writeBytes(String s)                    以字节序列方式写入字符串
void writeInt(int v)                        写入int
void writeShort(int v)                        写入short
void writeLong(long v)                        写入long
void writeUTF(String str)                    以UTF8格式往输出流写入字符串
void flush()                                冲刷数据输出流

例子

package com.dylan.io;

import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream; /**
* @author xusucheng
* @create 2018-01-06
**/
public class DataOutputStreamDemo {
public static void main(String[] args) throws IOException{
OutputStream fos = new FileOutputStream("D:\\testout.txt");
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(65);
dos.writeUTF("Java is great!");
dos.flush();
dos.close(); System.out.println("写入成功!");
}
}

Java DataInputStream Class

Java DataInputStream class 允许应用程序以机器无关方式从指定输入流读取java原始数据

类定义

public class DataInputStream extends FilterInputStream implements DataInput  

构造函数

DataInputStream(InputStream in)

使用指定的输入流创建一个数据输入流

常用方法

int read(byte[] b)                            读取字节
int read(byte[] b, int off, int len)        每次读取len长度字节
int readInt()                                读取int
byte readByte()                                读取一个字节
char readChar()                                读取2个字节
double readDouble()                            读取8字节,返回一double类型值
boolean readBoolean()                        读取一个字节,如果非0返回true,否则返回false
int skipBytes(int x)                        跳过x个字节
String readUTF()                            以UTF8格式读取一个字符串
void readFully(byte[] b)                    从输入流读取字节并存在缓冲数组中
void readFully(byte[] b, int off, int len)    从输入流读取len字节

例子

package com.dylan.io;

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream; /**
* @author xusucheng
* @create 2018-01-06
**/
public class DataInputStreamDemo {
public static void main(String[] args) throws IOException{
InputStream is = new FileInputStream("D:\\testout.txt");
DataInputStream dis = new DataInputStream(is);
int count = dis.available();
byte[] bytes = new byte[count];
dis.read(bytes);
for(byte b:bytes){
char c = (char)b;
System.out.print(c);
}
dis.close();
}
}

下一章

Java I/O 教程(八) Writer和Reader

Java I/O 教程(七) DataOutputStream和DataInputStream的更多相关文章

  1. 转:Java NIO系列教程(七) Socket Channel

    Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道.可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器. ...

  2. Java NIO系列教程(七) selector原理 Epoll版的Selector

    目录: Reactor(反应堆)和Proactor(前摄器) <I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor> <[转]第8章 前摄器(Proa ...

  3. Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)

    Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...

  4. Java IO操作——数据操作流DataOutputStream和DataInputStream的使用

    学习目标  掌握DataOutputStream和DataInputStream的作用 可以使用DataOutputStream和DataInputStream写入和读入数据 数据操作流 在io包中, ...

  5. JAVA IO操作:数据操作流:DataOutputStream和DataInputStream

    掌握DataOutputStream和DataInputStream的作用. 可以使用DataOutputStream和DataInputStream写入和读取数据. 在IO包中提供了两个与平台无关的 ...

  6. java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例

    本章介绍DataOutputStream.我们先对DataOutputStream有个大致认识,然后再深入学习它的源码,最后通过示例加深对它的了解. 转载请注明出处:http://www.cnblog ...

  7. 20175314 《Java程序设计》第七周学习总结

    20175314 <Java程序设计>第七周学习总结 教材学习内容总结 第八章:常用实用类 String()类代表字符串:Java 程序中的所有字符串字面值(如 "abc&quo ...

  8. 20175126《Java程序设计》第七周学习总结

    # 20175126 2016-2017-2 <Java程序设计>第七周学习总结 ## 教材学习内容总结 - 本周学习方式主要为手动敲代码并理解内容学习. - 学习内容为教材第八章,本章主 ...

  9. Java NIO系列教程(八)JDK AIO编程

    目录: Reactor(反应堆)和Proactor(前摄器) <I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor> <[转]第8章 前摄器(Proa ...

  10. 20165235 祁瑛 2018-4 《Java程序设计》第七周学习总结

    20165235 祁瑛 2018-4 <Java程序设计>第七周学习总结 教材学习内容总结 MySQL数据管理系统 MySQL数据管理系统,简称MySQL,是世界上流行的数据管理系统. M ...

随机推荐

  1. [转帖]K8s Pod Command 与容器镜像 Cmd 启动优先级详解

    https://cloud.tencent.com/developer/article/1638844 前言 创建 Pod 时,可以为其下的容器设置启动时要执行的命令及其参数.如果要设置命令,就填写在 ...

  2. [转帖]【性能】大页内存 (HugePages)在通用程序优化中的应用

    目录 1. 背景 2. 基于指纹的音乐检索简介 3. 原理 4. 小页的困境 5. 大页内存的配置和使用 6. 大页内存的优化效果 7. 大页内存的使用场景 8. 总结 LD_PRELOAD用法 原文 ...

  3. [转帖]使用 Grafana 监控 TiDB 的最佳实践

    https://docs.pingcap.com/zh/tidb/stable/grafana-monitor-best-practices 使用 TiUP 部署 TiDB 集群时,如果在拓扑配置中添 ...

  4. [转帖]Kafka-LEO和HW概念及更新流程

    https://www.cnblogs.com/youngchaolin/p/12641463.html 目录 LEO&HW基本概念 LEO&HW更新流程 LEO HW 更新流程示例分 ...

  5. [转帖]手摸手搭建简单的jmeter+influxdb+grafana性能监控平台

    我安装的机器是阿里云的centos8机器,其他的系统暂未验证 1.安装influxdb influxdb 下载地址https://portal.influxdata.com/downloads/,也可 ...

  6. [转帖]KingbaseES和Oracle数据类型的映射表

    随着数据库国产化的进程,Oracle向KingbaseES数据库的数据迁移需求也越来越多.数据库之间数据迁移的时候,首先遇到的,并且也是最重要的,就是数据类型之间的转换. 下表为KingbaseES和 ...

  7. [转帖]Shell中常用的date时间命令

    常用FORMAT %Y  YYYY格式的年份(Year) %m  mm格式的月份(),01-12 %d   dd格式的日期(day of month),01-31 %H   HH格式的小时数(),00 ...

  8. [转帖]队列深度对IO性能的影响

    https://www.modb.pro/db/43710 几年前一个客户的Oracle数据库经常HANG,老白帮他分析了一下,结论是存储老化,性能不足以支撑现有业务了.正好用户手头有个华为S5600 ...

  9. TCP内核参数的简单验证

    前言 春节假期时学习了下内核参数与nginx的调优 最近因为同事遇到问题一直没有解,自己利用晚上时间再次进行验证. 这里将几个参数的理解和验证结果简单总结一下. 希望能够在学习的过程中将问题解决掉. ...

  10. Linux 环境下 node 以及 jit 的简单环境配置说明

    注意事项: 1. 注意这个包需要实时更新. 2. 更新时需要按照目录覆盖文件. 3. 谁负责谁治理的态度, 有更新,需要完整的进行覆盖安装. 建议先删除旧文件, 替换新文件. 4. 为了简单起见, 直 ...