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. [转帖]Jmeter学习笔记(八)——监听器元件之聚合报告

    https://www.cnblogs.com/pachongshangdexuebi/p/11507298.html 1.聚合报告添加 聚合报告是常用的监听器之一,添加路径: 点击线程组->添 ...

  2. [转帖]unmatched(riscv64)上编译,安装和移植SPEC CPU 2006

    https://zhuanlan.zhihu.com/p/429399630 Linux ubuntu 5.11.0-1021-generic #22-Ubuntu SMP Tue Sep 28 15 ...

  3. [转帖]iptables的四表五链与NAT工作原理

    本文主要介绍了iptables的基本工作原理和四表五链等基本概念以及NAT的工作原理. 1.iptables简介 我们先来看一下netfilter官网对iptables的描述: iptables is ...

  4. [转帖]07-rsync企业真实项目备份案例实战(需求收集--服务器配置---客户端配置---报警机制---数据校验---邮件告警)

    https://developer.aliyun.com/article/885820?spm=a2c6h.24874632.expert-profile.279.7c46cfe9h5DxWK 简介: ...

  5. [转帖]Linux使用Stress-ng测试CPU、内存、磁盘I/O满载情况教程与范例

    https://www.xiaoyuanjiu.com/108301.html 介绍如何在 Linux 系统上使用 stress-ng 负载测试工具,产生 CPU.内存等资源满载的状况. stress ...

  6. [转帖] 原来awk真是神器啊

    https://www.cnblogs.com/codelogs/p/16060082.html 简介# 刚开始入门awk时,觉得awk很简单,像是一个玩具,根本无法应用到工作之中,但随着对awk的了 ...

  7. 你还在“垃圾”调优?快来看看JDK17的ZGC如何解放双手 | 京东云技术团队

    1.前言 不要犹豫了,GC最大停顿时间小于1ms,支持16TB内存,这么高的性能提升,也不需要复杂的调优,节省了这个时间,你去陪对象不香嘛. 上篇文章给大家带来了JDK11升级JDK17的最全实践,相 ...

  8. 你不知道的Linux shell操作

    Linux Shell 脚本入门教程 Linux Shell 脚本是一种强大的工具,它允许您自动化日常任务和复杂操作.在本教程中,我们将逐步介绍几个实用的 Shell 脚本示例.每个示例都将详细说明, ...

  9. mysql系列基础篇01---通用的语法及分类

    通用语法及分类 DDL: 数据定义语言,用来定义数据库对象(数据库.表.字段) DML: 数据操作语言,用来对数据库表中的数据进行增删改 DQL: 数据查询语言,用来查询数据库中表的记录 DCL: 数 ...

  10. TienChin-课程管理-创建工程

    创建方式与之前一样,如下奉上 generateCourse 代码. @Test void generateCourse() { String path = "E:\\Desktop\\Tie ...