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. Linux运行服务的几种方式

    摘要 1. nohup & 2. screen 3. bg & disown 4. systemd 5. crontab @reboot 背景 最近一直在用linux 想着多总结一下. ...

  2. ARM 平台Docker运行RabbitMQ 以及迁移的简单办法

    公司网络很垃圾. 可以使用vps 进行下载和打包  放到 公司的机器上面进行使用. 1. 搜索有没有可用的镜像. [root@JNXLH ~]# docker search rabbitmq |gre ...

  3. 根目录被赋予777 -R权限后的处理过程

    解决某研发手残导致的系统宕机问题的处理过程 背景 2022.8.8 公司一台服务器出现了宕机的现象: 所有的人都无法远程, 都提示密码错误. 但是网络还是通的. 2022.8.12 出差前一天去了一趟 ...

  4. zookeeper的Leader选举源码解析

    作者:京东物流 梁吉超 zookeeper是一个分布式服务框架,主要解决分布式应用中常见的多种数据问题,例如集群管理,状态同步等.为解决这些问题zookeeper需要Leader选举进行保障数据的强一 ...

  5. Redis极简教程

    简介 Redis 是用C语言开发完全开源免费的,遵守BSD协议的,一个高性能的,key-value型的,NOSQL数据库. 特点 可以将内存中的数据持久化到硬盘中,重启的时候可以从硬盘中再次加载 拥有 ...

  6. bug的分类

    bug的分类 语法上的问题: 在循环的时候, 1.一定要注意这个循环的对象是否是空对象:空对象就不需要进行循环了, 判断一下,空对象就不需要进行循环了: 2.在XXX.a属性的时候,要注意这个对象是否 ...

  7. 【VictoriaMetrics】一个小优化:循环改查表,性能提升56.48 倍

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 做了一个 vm-storage 数据文件 merge 的工 ...

  8. 【笔记】学到几个 golang 代码小技巧

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 从这篇文章学到:10个令人惊叹的Go语言技巧,让你的代码更 ...

  9. pycharm像vs那样进行代码折叠

    在visual studio中可以使用#region和#endregion来进行代码折叠,我尝试在pycharm中也可以使用相同的指令来折叠代码. 但是如果#endregion是在方法的最后面或者类的 ...

  10. Unity2020或Unity2019安装后无法启动

    无法启动Unity 下载国际版的Unity2020,双击Unity.exe无法启动,通过Unity Hub也无法启动 ​ 原因 通过查看unity hub的日志发现Unity 启动的时候会检查 lie ...