侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

Java  /  管理员 发布于 3年前   303

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)

 

 

 

 

 


  • 上一条:
    JAVA IO InputStreamReader和OutputStreamReader
    下一条:
    java取反 -右移-左移-无符号右移的探讨
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • java 正则表达式基础,实例学习资料收集大全 原创(0个评论)
    • java正则表达式彻底研究(0个评论)
    • java正则表达式验证函数(0个评论)
    • MVC、MVP和MVVM分别是什么(0个评论)
    • java 单例模式(饿汉模式与懒汉模式)(0个评论)
    • 近期文章
    • 在laravel框架中的5个HTTP客户端技巧分享(0个评论)
    • 在go语言中使用FFmpeg库实现PCM音频文件编码为mp3格式文件流程步骤(0个评论)
    • gopacket免安装Pcap实现驱动层流量抓包流程步骤(0个评论)
    • 在laravel项目中实现密码强度验证功能推荐扩展包:password-strength(0个评论)
    • 在go语言中用filepath.Match()函数以通配符模式匹配字符串示例(0个评论)
    • Laravel Response Classes 响应类使用优化浅析(0个评论)
    • mysql中sql_mode的各模式浅析(0个评论)
    • 百度文心一言今天发布,个人第一批内测体验记录,不好别打我(0个评论)
    • 嘿加密世界让我们谈谈在共识中将中本聪主流化(0个评论)
    • 在go语言中寻找两个切片或数组中的相同元素/共同点/交集并集示例代码(0个评论)
    • 近期评论
    • 博主 在

      2023年国务院办公厅春节放假通知:1月21日起休7天中评论 @ xiaoB 你只管努力,剩下的叫给天意;天若有情天亦老,..
    • xiaoB 在

      2023年国务院办公厅春节放假通知:1月21日起休7天中评论 会不会春节放假后又阳一次?..
    • BUG4 在

      你翻墙过吗?国内使用vpn翻墙可能会被网警抓,你需了解的事中评论 不是吧?..
    • 博主 在

      go语言+beego框架中获取get,post请求的所有参数中评论 @ t1  直接在router.go文件中配就ok..
    • Jade 在

      如何在MySQL查询中获得当月记录中评论 Dear zongscan.com team, We can skyroc..
    • 2016-11
    • 2018-03
    • 2020-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客