`
百合不是茶
  • 浏览: 354915 次
社区版块
存档分类
最新评论

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

阅读更多

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`用于处理基本数据类型的读写,`ObjectInputStream`和`ObjectOutputStream`用于序列化和反序列化对象,`GZIPOutputStream`和`GZIPInputStream`则用于进行数据的GZIP压缩...

    java.io包详细解说

    在Java IO包中,还有许多其他的类,如DataInputStream和DataOutputStream,它们用于读写基本数据类型;FileReader和FileWriter用于文件的字符读写;ObjectInputStream和ObjectOutputStream则支持序列化和反序列化...

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

    `DataInputStream`和`DataOutputStream`是Java.io包中的两个类,它们是用来读写基本类型数据(如int、float、double等)的流。这两个类是Java二进制数据操作的基础,与字符流(如`BufferedReader`、`PrintWriter`)...

    JBuider第八章:Java.io包.rar

    - `DataInputStream` 和 `DataOutputStream` 支持基本数据类型的读写。 - `ObjectInputStream` 和 `ObjectOutputStream` 实现对象的序列化和反序列化。 3. **转换流**: 转换流(Wrapper Streams)允许在字节流...

    java常用的工具类整理28个

    21. **java.io.DataInputStream**和**java.io.DataOutputStream**:用于读写基本数据类型的流。 22. **java.io.BufferedInputStream**和**java.io.BufferedOutputStream**:对字节流进行缓冲,提高性能。 23. **...

    北大青鸟java.io经典例子

    `DataInputStream`和`DataOutputStream`用于处理基本数据类型,如int、double等,支持有序的读写。 9. **管道流**: 管道流如`PipedInputStream`和`PipedOutputStream`用于线程间的通信,一个线程写入数据,另一...

    java.io的吐血实用例子

    在Java编程语言中,`java.io`包是用于输入/输出(I/O)操作的基础部分,包含了许多类和接口,使得开发者能够处理数据流、字符流、对象序列化、磁盘文件以及网络连接等任务。本篇文章将深入探讨`java.io`包中的关键概念...

    java_IO.rar

    7. **DataIO 和 ByteArrayIO(07_DataIO_and_ByteArrayIO.avi)**:DataInputStream和DataOutputStream用于读写基本数据类型,如int、float等。而ByteArrayInputStream和ByteArrayOutputStream则允许在内存中操作...

    计算机网络实验报告 获取MAC socket通信

    java.io.InputStream is = new java.io.DataInputStream( sk.getInputStream()); // 接受网络输入流 写入文件 int len = 0; byte[] buff = new byte[1024]; while((len=is.read(buff))!=-1){ fos....

    java io包课件

    总结起来,Java的`java.io`包提供了一整套工具,使开发者能够方便地处理文件操作和数据流。理解并熟练掌握这些类和方法,对于任何Java开发者来说都是至关重要的,因为它们是进行文件处理和数据交换的基础。通过学习...

    java io包中简单的常用类使用

    在Java编程语言中,`java.io`包是处理输入输出操作的核心部分,它包含了大量用于读写数据的类。这个包中的类广泛应用于文件操作、网络通信、标准输入输出流等场景。本篇文章将深入探讨`java.io`包中一些常用的类,并...

    JAVA教程IO流操作

    在Java编程语言中,IO(Input/Output)流是一组用于处理输入和输出操作的类和接口,它们允许我们读取和写入数据到各种类型的源和目标,如文件、网络连接、内存缓冲区等。Java IO流系统分为字节流和字符流两大类。 ...

    流与文件 JAVA文件操作

    `DataFileTest.javae`可能涉及到了数据文件的读写,这里可能使用到了`DataInputStream`和`DataOutputStream`。这两个类允许我们以特定的格式(如int、float、double等)读写数据,方便数据序列化和反序列化。 在...

    java 文件传输代码

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

    Java-IO流.pdf

    Java的I/O流还包括许多子类,如`FileInputStream`和`FileOutputStream`用于文件的读写,`BufferedInputStream`和`BufferedOutputStream`提供缓冲功能以提高性能,`DataInputStream`和`DataOutputStream`支持基本类型...

    java io流学习笔记1

    3. DataInputStream和DataOutputStream:处理基本数据类型。 4. ObjectInputStream和ObjectOutputStream:用于序列化和反序列化对象。 5. PipedInputStream和PipedOutputStream:用于线程间通信。 四、IO流的使用...

    java DataInputStream和DataOutputStream详解及实例代码

    Java中的`DataInputStream`和`DataOutputStream`是用于处理基本数据类型流的类,它们都位于`java.io`包中。这两个类是为了解决在进行网络通信或磁盘存储时,需要高效、有序地读写Java基本数据类型的问题。 `...

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

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

    java IO 类层次图

    - `CheckedInputStream`: 可以检查数据流中的校验和。 - `DigestInputStream`: 可以计算输入流数据的摘要值。 - `InflaterInputStream`: 支持对数据进行解压缩。 - `LineNumberInputStream`: 记录读取的行号。 ...

    IO流 javaio java 流

    例如,DataInputStream和DataOutputStream用于处理基本数据类型,GZIPOutputStream用于压缩数据。 4. 文件流: - File类:代表操作系统中的文件或目录,提供了文件操作的基本方法。 - FileInputStream和...

Global site tag (gtag.js) - Google Analytics