当前位置:首页 > 开发 > 编程语言 > Java > 正文

java.io操作 DataInputStream和DataOutputStream基本数据流

发表于: 2014-05-27   作者:百合不是茶   来源:转载   浏览:
摘要: 1,java中如果不保存整个对象,只保存类中的属性,那么我们可以使用本篇文章中的方法,如果要保存整个对象  先将类实例化  后面的文章将详细写到     2,DataInputStream 是java.io包中一个数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。

1,java中如果不保存整个对象,只保存类中的属性,那么我们可以使用本篇文章中的方法,如果要保存整个对象  先将类实例化  后面的文章将详细写到

 

 

2,DataInputStream 是java.io包中一个数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。

 

3,DataOutputStream是java.io包中一个数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后, 应用程序可以使用数据输入流将数据读入。

 

4,DataInputStream和DataOutputStream主要是对java中的基本 数据的读写操作read()和write(); readBoolean(); readByte(); readcChar(); readShort(); readInt(); readFloat(); readDouble(); readLong();

上面的这些读基础数据的方法,他们都会有一个返回都是以字 节的形式返回的,JAVA的api中说的很清楚

 

5,下面将使用DataInputStream和DataOutputStream来写一个读写的程序;

 

分析;下面的程序不能可以将属性写入到文本,读取不到资源?

 

package File0524;
import java.io.*;

public class Date {

	public static void main(String[] args) {
		File file  = new File("F:\\file1\\读取_Data.doc");
		writer(file);
		reads(file);
	}
	
	public static void writer(File file){
		try{
			FileOutputStream fos = new FileOutputStream(file);
			DataOutputStream dos = new DataOutputStream(fos );
			dos.writeChar('王');
			dos.writeFloat(123.33F);
			dos.writeInt(2222);
			dos.flush();
			fos.close();
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}
	
		
		public static void reads(File file){
			
			try{
				FileInputStream fis = new FileInputStream(file);
				DataInputStream dis = new  DataInputStream(fis);
                              //使用read来读取数据时,不要写要读取的数据  ,读的数据要和写/                             //的数据顺序一样
				char c =dis.readChar();
				float f1=dis.readFloat();
				int  i = dis.readInt();
				System.out.println("完成");
				System.out.println(c);
				System.out.println(f1);
				System.out.println(i);
				
			
			}catch(Exception e){
				e.printStackTrace();
			}
		}
}

 

运行结果
完成
王
123.33
2222

 分析:

 

 

在本类中我们先创建一个写的方法,并创建一个“读取_Data.doc',当我们使用wps打开的时候,里面是:"s婤雳"这表明我们不能直接看到我们写进去的东西,我们在创建一个读的方法,在开发软件中会返回给我们读取到的结果

 

 

 

 

5,使用java.io中的基础数据流来保存属性

 

package File0524;

public class Date1 {
	private String name;
	private int age;
	
	
	public Date1(String name,int age){
		this.name=  name;
		this.age = age;
	}
	
	public void setName(String name){
		this.name = name;
	}
	public void setAge(int age){
		this.age = age;
	}
	
	public String getName(){
		return name;
	}
	
	public int getAge(){
		return age;
	}
	

}

 

 

 

 

package File0524;

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

/**
 *定义Date1Test来保存Data1中的数据
 * @author Administrator
 *
 */
public class Date1Test {

	public static void main(String[] args) {
		 Date1[] d1 ={ new Date1("王佳1",10),
		 			new Date1("王佳2",20),
		 			new Date1("王佳3",30)};

		 
		 try{
			 File file = new File("F:\\file1\\Data_File.txt");
			 File file1 = new File("F:\\file1\\Data_File1.txt");
			 
//			 FileOutputStream fos = new FileOutputStream(file);
//			 DataOutputStream dos = new DataOutputStream(fos);
			 
			 DataOutputStream dos = new DataOutputStream(new FileOutputStream(file));
			 //使用for循环将读取到的数据一个一个输出
			 for(Date1 date1 : d1){
				 dos.writeUTF(date1.getName());
				 dos.writeInt(date1.getAge());
				 System.out.println("写出的数据:" +date1.getName()+date1.getAge());
				 
			 }
			 dos.flush();
			 dos.close();
//			 //创建字节输入流
//			 FileInputStream fis = new FileInputStream(file1);
//			 //创建java基础数据操作输入流
//			 DataInputStream dis = new DataInputStream(fis) ;
			 DataInputStream dis = new DataInputStream(new FileInputStream(file1)) ;
			 //使用for循环将读取到的数据一个一个的读取出来,保存在d1的数组中
			 for(int i =0;i<d1.length;i++){
				 //读取UTF的字符串
				//String name = dis.readUTF();
				String name = dis.readUTF(); 
				//读取int数据
				int age = dis.readInt();
				 System.out.printf("%s\t%d%n",name,age);
				 //d1[i] = new Date1(name,age);
			 }
			 
			 dis.close();
			 //显示还原后的数据
			 //将读取到的文件进行遍历
//			 for(Date1 Date1:d1){
////			 System.out.println("获取到了对象,对其进行全部的打印输出:"
////			 		+ Date1.getName(),Date1.getAge());
//				 
//			 System.out.printf("%s\t%d%n",Date1.getName(),Date1.getAge());
//			 }
			 
			 
		 }catch(Exception e){
			 e.printStackTrace();
		 }
	}
	
	
}

 

 

 

 

 

运行结果:
写出的数据:王佳110
写出的数据:王佳220
写出的数据:王佳330
java.io.EOFException
	at java.io.DataInputStream.readUnsignedShort(Unknown Source)
	at java.io.DataInputStream.readUTF(Unknown Source)
	at java.io.DataInputStream.readUTF(Unknown Source)
	at File0524.Date1Test.main(Date1Test.java:48)

 

 

 

 

 

java.io操作 DataInputStream和DataOutputStream基本数据流

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
DataOutputStream数据输出流允许应用程序以适当方式将java基本数据类型写入输入流中,然后,应用程
数据操作流: 与平台无关的数据操作流:DataOutputStream、DataInputStream 如果要想使用数据操作流
文章来源:http://www.itnose.net/detail/6034227.html 更多文章:http://www.itnose.net/type/1.ht
接口:Serializable 功能:启动序列化 简介:类实现了这个接口就会是吸纳序列化; 功能描述:什么是
1、启动hadoop工程 2、eclipse导入插件 将hadoop-eclipse-plugin-2.6.0.jar插件导入eclipse中,重启
常用指令 ls   显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包
1. GitHub操作 本节先简单介绍 git 的使用与操作, 然后再介绍 TortoiseGit 的使用与操作. 先看看SVN
1. GitHub操作 本节先简单介绍 git 的使用与操作, 然后再介绍 TortoiseGit 的使用与操作. 先看看SVN
线程简单基本操作 前传 这几天来到上海,身心疲惫,而且烧钱一大把,吃饭、住房、生活用品......,
数据结构复习-二叉树基本操作 引言 近日受人所托,搞了点二叉树的程序,顺便回顾了下二叉树的一些基
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号