java.io操作 DataInputStream和DataOutputStream基本数据流
Java  /  管理员 发布于 4年前   482
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.332222
分析:
在本类中我们先创建一个写的方法,并创建一个“读取_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写出的数据:王佳330java.io.EOFExceptionat 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)
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号