`

数据操作流DataOutputStream和DataInputStream的使用

    博客分类:
  • J2EE
 
阅读更多
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;

public class DataOutputStreamDemo {
	public static void main(String args[]) throws Exception { // 所有异常抛出
		DataOutputStream dos = null; // 声明数据输出流对象
		File f = new File("d:" + File.separator + "order.txt"); // 文件的保存路径
		dos = new DataOutputStream(new FileOutputStream(f)); // 实例化数据输出流对象
		String names[] = { "衬衣", "手套", "围巾" }; // 商品名称
		float prices[] = { 98.3f, 30.3f, 50.5f }; // 商品价格
		int nums[] = { 3, 2, 1 }; // 商品数量
		for (int i = 0; i < names.length; i++) { // 循环输出
			dos.writeChars(names[i]); // 写入字符串
			dos.writeChar('\t'); // 写入分隔符
			dos.writeFloat(prices[i]); // 写入价格
			dos.writeChar('\t'); // 写入分隔符
			dos.writeInt(nums[i]); // 写入数量
			dos.writeChar('\n'); // 换行
		}
		dos.close(); // 关闭输出流
	}
};

 

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;

public class DataInputStreamDemo {
	public static void main(String args[]) throws Exception { // 所有异常抛出
		DataInputStream dis = null; // 声明数据输入流对象
		File f = new File("d:" + File.separator + "order.txt"); // 文件的保存路径
		dis = new DataInputStream(new FileInputStream(f)); // 实例化数据输入流对象
		String name = null; // 接收名称
		float price = 0.0f; // 接收价格
		int num = 0; // 接收数量
		char temp[] = null; // 接收商品名称
		int len = 0; // 保存读取数据的个数
		char c = 0; // '\u0000'
		try {
			while (true) {
				temp = new char[200]; // 开辟空间
				len = 0;
				while ((c = dis.readChar()) != '\t') { // 接收内容
					temp[len] = c;
					len++; // 读取长度加1
				}
				name = new String(temp, 0, len); // 将字符数组变为String
				price = dis.readFloat(); // 读取价格
				dis.readChar(); // 读取\t
				num = dis.readInt(); // 读取int
				dis.readChar(); // 读取\n
				System.out.printf("名称:%s;价格:%5.2f;数量:%d\n", name, price, num);
			}
		} catch (Exception e) {
		}
		dis.close();
	}
}

 5.2f 表示的是 总共的数字长度为5位,其中2位表示小数,3位表示整数。

 

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class TestDataStream {
	public static void main(String[] args) {
		// 使用DataInputStream,DataOutputStream写入文件且从文件中读取数据。
		try {
			// Data Stream写到输入流中
			DataOutputStream dos = new DataOutputStream(new FileOutputStream(
					"datasteam.txt"));
			dos.writeBytes("世界"); //按2字节写入,都是写入的低位
			dos.writeChars("世界"); // 按照Unicode写入
			// 按照UTF-8写入(UTF8变长,开头2字节是由writeUTF函数写入的长度信息,方便readUTF函数读取)
			dos.writeUTF("世界"); 
			dos.flush();
			dos.close();

			// Data Stream 读取
			DataInputStream dis = new DataInputStream(new FileInputStream(
					"datasteam.txt"));
			// 读取字节
			byte[] b = new byte[2];
			dis.read(b);
			System.out.println(new String(b, 0, 2));

			// 读取字符
			char[] c = new char[2];
			for (int i = 0; i < 2; i++) {
				c[i] = dis.readChar();
			}
			System.out.println(new String(c, 0, 2));

			// 读取UTF
			System.out.println(dis.readUTF());

			dis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

 

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class TestDataStream {
	public static void main(String[] args) {
		// 使用DataInputStream,DataOutputStream写入文件且从文件中读取数据。
		try {
			// Data Stream写到输入流中
			DataOutputStream dos = new DataOutputStream(new FileOutputStream(
					"datasteam.txt"));
			dos.write("世界".getBytes()); // 按UTF8编码(我的系统默认编码方式)写入
			//dos.write("世界".getBytes("GBK"));  //指定其他编码方式
			dos.writeChars("世界"); // 按照Unicode写入
			// 按照UTF-8写入(UTF8编码长度可变,开头2字节是由writeUTF函数写入的长度信息,方便readUTF函数读取)
			dos.writeUTF("世界"); 
			dos.flush();
			dos.close();

			// Data Stream 读取
			DataInputStream dis = new DataInputStream(new FileInputStream(
					"datasteam.txt"));
			// 读取字节
			byte[] b = new byte[6];
			dis.read(b);
			System.out.println(new String(b, 0, 6));

			// 读取字符
			char[] c = new char[2];
			for (int i = 0; i < 2; i++) {
				c[i] = dis.readChar();
			}
			System.out.println(new String(c, 0, 2));

			// 读取UTF
			System.out.println(dis.readUTF());

			dis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

参考:http://blog.csdn.net/fishwjy/article/details/38092985

分享到:
评论

相关推荐

    android客户端用socket不间断传输图片

    利用DataOutputStream和DataInputStream实现由android客户端利用Socket向java服务器不间断传输图片,很好用。之间试过由OutpuStream.write(byte[])以及先将图片byte[]通过Base64加密转换为String再发送,效果都不好...

    实验3 输入输出流的实验.doc

    本实验主要介绍了 Java 中的输入输出流,包括 DataInputStream、DataOutputStream、PrintStream 等类的使用,以及对象的序列化和反序列化。通过实验,我们可以掌握流的概念分类、字符串常用操作方法、流的构造和应用...

    java DataInputStream和DataOutputStream详解及实例代码

    这个例子展示了如何在Java中使用`DataInputStream`和`DataOutputStream`进行基本数据类型的读写操作。值得注意的是,这两个类的使用通常伴随着异常处理,如`IOException`,因为I/O操作可能会出现错误。因此,在实际...

    【IT十八掌徐培成】Java基础第16天-05.DataInputStream-DataOutputStream-FilterStream.zip

    在提供的视频教程"Java基础第16天-05.DataInputStream-DataOutputStream-FilterStream.avi"中,IT十八掌徐培成老师会详细讲解如何使用这些类进行数据的读写操作,包括它们的基本用法、异常处理以及与其他流的组合...

    DataStream.html

    可以使用DataOutputStream和DataInputStream写入和读取数据。 在IO包中提供了两个与平台无关的数据操作流 数据输出流:DataOutputStream 数据输入流:DataInputStream 通常按照一定格式将输入输出,再按照...

    数据流读与写操作手册

    - `DataOutputStream`和`DataInputStream`:提供读写Java基本类型数据(如int、long)的能力,`writeUTF`和`readUTF`方法用于处理UTF-8编码的字符串。 - `PrintStream`和`PrintWriter`:方便地打印数据,`...

    Java的DataInputStream和DataOutputStream数据输入输出流

    在Java编程语言中,`DataInputStream`和`DataOutputStream`是用于处理基本数据类型的输入输出操作的类。这两个类在处理二进制数据时非常有用,因为它们提供了以机器无关的方式来读取和写入基本Java数据类型的方法。...

    Java基于socket实现的客户端和服务端通信功能完整实例

    DataOutputStream用来将数据写入到Socket的输出流中,DataInputStream用来从Socket的输入流中读取数据。 总结 本文详细介绍了Java基于Socket实现的客户端和服务端通信功能,包括客户端和服务器端的实现、连接和...

    数据流,对象流,字节流,字符流.docx

    根据不同的数据类型和操作方式,I/O流分为多个类别,主要包括数据流、对象流、字节流和字符流。 1. **数据流**: 数据流主要指的是InputStream和OutputStream这两类基本流。InputStream是所有读取数据的流的基类,...

    Java数据输入输出流.pdf

    Java数据输入输出流是Java IO库中的重要组成部分,主要用于处理不同数据类型的输入和输出操作,尤其是在文件和网络通信中。本文将深入探讨DataInputStream和DataOutputStream这两个类以及它们所关联的DataInput和...

    java数据流的概述

    此外,DataInputStream和DataOutputStream则提供了读写基本数据类型(如int、float)的能力。 2. 字符流:Reader和Writer是字符输入流和输出流的基类,它们处理Unicode字符。FileReader和FileWriter专门用于读写...

    Java中使用数据输入输出流实现字符串加解密的代码清单.pdf

    在Java编程中,数据输入输出流(DataInputStream和DataOutputStream)是用于处理基本数据类型和字符串的I/O操作的重要工具。这两个类提供了机器无关的读写功能,使得在不同平台之间交换数据变得更加简单。本文将详细...

    Java第7、8、9章实验.doc

    3. 数据交换:在 Java 中,我们使用 DataOutputStream 和 DataInputStream 来进行数据交换。DataOutputStream 用于将数据写入到流中,而 DataInputStream 用于从流中读取数据。 实验总结 通过这两个实验,我们可以...

    Java教程之javaIO详解

    Java IO 中的 File 类、输入流和输出流是处理输入输出操作的基本类和方法,BufferedOutputStream、BufferedInputStream、DataOutputStream 和 DataInputStream 等过滤流提供了带缓冲的读写和基本数据类型的读写功能...

    android 数据IO流实例

    3. **DataInputStream** 和 **DataOutputStream**:这两个类提供了读写基本数据类型(如int、float、double等)的方法。它们通常用于序列化和反序列化数据,使得数据能在不同的Java程序之间交换。 4. **FileReader*...

    Java软件开发实战 Java基础与案例开发详解 13-7 数据流 共6页.pdf

    根据给定文件的信息,我们可以提炼出关于Java软件开发中数据流相关的知识点,特别是针对`DataInputStream`类及其在文件和内存中的使用。 ### 13.7 数据流 #### DataInputStream 类 `DataInputStream`是Java中用于...

    java io 流,文件读取操作

    常见的数据流类型有 DataInputStream 和 DataOutputStream。 十一、ByteArrayOutputStream 和 ByteArrayInputStream ByteArrayOutputStream 是一种字节数组流,用于将数据写入到字节数组中。ByteArrayInputStream ...

    java数据流

    `DataInputStream`和`DataOutputStream`提供了读写基本数据类型(如int、float等)的便捷方法。 7. 文件操作: Java中的文件操作通常通过`File`类进行,包括创建、删除、重命名等。文件的读写则使用前面提到的流...

    文件操作以及流

    例如,使用`DataInputStream`和`DataOutputStream`可以方便地读写基本类型的数据,`ObjectInputStream`和`ObjectOutputStream`则支持对象的序列化和反序列化。 对于网络编程,Java的流模型同样适用,如`Socket`和`...

Global site tag (gtag.js) - Google Analytics