Java基础:浅谈数据输入流/数据输出流《DataInputstream类与DataOutputstream类》
一、理论概述
数据输入/输出流(DataInputStream类与DataOutputStream类) 允许应用程序以与机器无关的方式从底层输入流中读取基本Java数据类型。 说白了就是,当读取一个数据时,不用再关心这个数值是那种字节 。
二、用法:
DataInputStream类与DataOutputStream类的构造方法如下:
1,DataInputStream(InputStream in):使用指定的基础InputStream创建一个DataInputStream 。
2,DataOutputStream(OutputStream out):创建一个数据输出流,将数据写入指定基础输出流 。
DataInputStream提供了三种写入字符串的方法:
1)writeBytes(String str)。
2)writeChars(String str)。
3)writeUTF(String str)。
由于java中的字符是Unicode编码,是双字节的,writeByte只是将字符中的每一个字符的低字节内容写入目标设备中;而writeChars将字符串中的
每一个字符的两个字节的内容都写到目标设备中;writeUTF将字符串按UTF编码后的字节长度写入目标设备中,然后才是每一个字节的UTF编码。
DataInputStream只提供了一个ReadUTF()方法返回字符串。这是因为要在一个连续的字节流读取一个字符串,如果没有特殊标记作为一个字符
串的结尾,并且不知道这个字符串的长度,就无法知道读取到什么位置才是这个字符串的结束。DataOutputStream类中只有writeUTF()方法向目
标设备中写入字符串的长度,所以也能准确的读回写入字符串。
Demo :
package com.wei;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* DataOutputStream和DataInputStream
* 的用法
* @author Weijianyi
*
*/
public class Demo01 {
public static void main(String[] arrgs) {
try {
// 创建FileOutputStream对象
FileOutputStream f = new FileOutputStream("F://demo.txt");
// 创建DataOutputStream对象
DataOutputStream d = new DataOutputStream(f);
// 写入磁盘文件数据
d.writeUTF("使用writeUTF向磁盘写入数据");
d.writeChars("使用writeChars向磁盘写入数据");
d.writeBytes("使用writeByte向磁盘写入数据");
// 将流关闭
d.close();
// 创建FileInputStream对象
FileInputStream fi = new FileInputStream("F://demo.txt");
// 创建DtatInputStream对象
DataInputStream da = new DataInputStream(fi);
String str = da.readUTF();
System.out.println(str);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Java基础:浅谈数据输入流/数据输出流《DataInputstream类与DataOutputstream类》的更多相关文章
- 【推荐】JAVA基础◆浅谈3DES加密解密
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- Java基础 FileInputStream/ FileOutputStream / 字节输入流 字节输出流实现文件的复制
FileInputStream/FileOutputStream的笔记: /**(FileInputStream/FileOutputStream四个步骤: ①声明②加载地址③read/write④c ...
- JAVA基础细谈
JAVA基础细谈 一. 源文件和编译后的类文件 源文件的本质就是程序文件,是程序员编写,是人看的.而编译后的类文件是给电脑看的文件.一个类就是一个文件,无论这个类写在哪里,编译以后都是一个文件 ...
- 浅谈SQL Server数据内部表现形式
在上篇文章 浅谈SQL Server内部运行机制 中,与大家分享了SQL Server内部运行机制,通过上次的分享,相信大家已经能解决如下几个问题: 1.SQL Server 体系结构由哪几部分组成? ...
- C#核心基础--浅谈类和对象的概念
浅谈类和对象的概念 一.什么是类?什么是对象? 学习一门面向对象编程语言,我们必须得知道什么是类?什么是对象? 类(Class)实际上是对某种类型的对象定义变量和方法的原型.它表示对现实生活中一类具有 ...
- 牛客网Java刷题知识点之输入流、输出流、字节流、字符流、字节流的抽象基类(InputStream、OutputStream)、字符流的抽象基类(Reader、Writer)、FileWriter、FileReader
不多说,直接上干货! IO流用来处理设备之间的数据传输. java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. IO流按操作数据分为两种:字节流和字符流. IO流按流向分为:输 ...
- Java的IO流以及输入流与输出流的异同
一:流的基本概念: Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.J ...
- java多线程浅谈
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 分这几种情况: 1.其他方法前是否加了synchronized关键字,如果没加,则能. 2 ...
- android的Binder通信机制java层浅谈-android学习之旅(88)
1.Service Manager的Java代理对象 在Java层中,Service Manager的代理对象类型为ServiceManagerProxy.它继承并且实现了IServiceManage ...
随机推荐
- Educational Codeforces Round 66 差G
Educational Codeforces Round 66 F 题意:长度为 n 的序列,求有多少个区间 \([l,r]\) ,使得其构成了一个 1~r-l+1 的排列. \(n \le 3*10 ...
- elementUI的select全选
elementUI中的el-select全选 <template> <el-select class="handle-select" size="min ...
- Linux基础篇六:Linux文件属性和类型
-:代表文件 s: sorket文件 b:block块设备 (磁盘,光驱等) c:字符设备 l:连接文件 p:管道文件 d:代表目录文件 为了更加区分- (文件的具体类型),系统提供了file命令更加 ...
- 华硕X450j清灰教程
近期本人电脑咳嗽,电脑发烧,风扇呼呼的吹(电脑风扇好像出了问题),去了电脑上商城买了一支止咳糖浆(HEATSINK COMPOUNDS)硅脂, 废话不多说了 1 ,当然要把电脑关了,卸下三排螺丝,然后 ...
- PAT甲级——1011 World Cup Betting
PATA1011 World Cup Betting With the 2010 FIFA World Cup running, football fans the world over were b ...
- html lang="en"
<html lang="en">向搜索引擎表示该页面是html语言,并且语言为英文网站,其"lang"的意思就是“language”,语言的意思,而 ...
- 02-信贷路由项目rose框架拆分dubbo
项目架构和 rose 框架搭建见 https://www.cnblogs.com/yuanpeng-java/p/9835984.html 1.dubbo 框架架构及组成 2.注册中心安装及配置 h ...
- Template设计模式
template英文名叫模板,在这个模式中,主要的角色有AbstractClass(抽象类)和ConcreteClass(具体类),这里举例如下; 将一段字符或者字符串循环显示5次: 首先定义抽象类, ...
- [LC] 692. Top K Frequent Words
Given a non-empty list of words, return the k most frequent elements. Your answer should be sorted b ...
- 70)PHP,cookie的安全传输和HTTPonly
(1)是否仅安全传输: