12.11数据操作流(血干JAVA系列)


在IO包中,提供了两个与平台无关的数据操作流,分别是数据输出流( DataOutputStream) 和数据输入流( Datalnpu tStream ), 通常数据输出流会按照一定的格式将数据输出,再通过数据输入流按照一定的格式将数据读入,这样可以方便地对数据进行处理。

在这里插入图片描述

12.11.1 DataOutputStream 类

DataOutputStreamOutputStream的子类,此类的定义如下:

public class DataOutputStream extends FilterOutputStream implements DataOutput

此类继承自 FiIterOutputStream 类(FilterOutputStreamOutputStream 的子类),同时实现DataOutput接口,在DataOutput接口定义了一系列写入各种数据的方法。

DataOutputStream类的常用方法

序号      方法      类型          描述 
1 public DataOutputStream(OutputStream out) 构造 实例化对象
2 public final void writelnt(int v) throws IOException 普通 将一个int值以4-byte值形式写入基础输出流中
3 public final void writeDouble(double v) throws IOException普通 写入一个double类型,该值以8-byte值形式写入基础输出流中
4 public final void uTiteChars(String s) throws IOException普通 将一个字符串写入到输出流之中
5 public final void writeChar(int v) throws IOException 普通 将一个字符写入到输出流之中

【例12.58】将订单数据写入到文件test.txt中

package jiaqi;

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

public class demo424_1 
{

	public static void main(String[] args) throws Exception
	{
		DataOutputStream dos = new DataOutputStream(new FileOutputStream(new File("d:"+ File.separator + "test.txt")));
		
		String names[] = {"衣服" , "鞋子" , "短袖"};
		float price[] = {33.1f , 98.3f , 55.5f};
		int num[] = {5 , 8 , 9};
		for(int i = 0;i < names.length;i++ )
		{
			dos.writeChars(names[i]);
			dos.writeChar('\t');
			dos.writeFloat(price[i]);
			dos.writeChar('\t');
			dos.writeInt(num[i]);
			dos.writeChar('\n');
		}
		
		dos.close();
		
	}

}

在这里插入图片描述

12.11.2 DatalnputStream 类

DatalnputStreamInputStream 的子类,专门负责读取使用DataOutputStream输出的数据,

此类的定义如下:

public class DatalnputStream extends Filterinputstream implements Datalnput

此类继承自FilterlnputStream (FilterlnputStream 是 InputStream 的子类),同时实现 Datalnput接口,在Datalnput接口中定义了一系列读入各种数据的方法。

DatalnputStream类的常用方法

序号      方法     类型     描述 
1 public DatalnputStream(InputStream in) 构造 实例化对象
2 public final int readlnt() throws lOException 普通 从输入流中读取整数
3 public final float readFloat() throws lOException 普通 从输入流中读取小数
4 public final char readChar() throws lOException 普通 从输入流中读取一字符

【例12.59】从test.txt中读取数据

package jiaqi;

import java.io.*;

public class demo426_1 {

	public static void main(String[] args) throws Exception 
	{
		// TODO 自动生成的方法存根
		DataInputStream dis = new DataInputStream(new FileInputStream(new File("d:"+ File.separator + "test.txt")));
		
		String name = null;
		float pri = 0.0f;
		int nu = 0;
		char c = 0;
	    int len = 0;
	    char temp[] = null;
	    
	    
	    try 
	    {
	    	while (true)
	    	{
				temp = new char[200];
				len = 0;
				while ((c = dis.readChar()) != '\t') 
				{
					temp[len] = c;
					len++;
				}
				
				name = new String(temp,0,len);
				pri = dis.readFloat();
				dis.readChar();
				nu = dis.readInt();
				dis.readChar();
				
				System.out.printf("名称:%s,价格:%5.2f,数量:%d\n",name,pri,nu);
				
			}
		}
	    catch (Exception e)
	    {
	    	
		}
	    dis.close();
	}

}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿斯卡码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值