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

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

Java  /  管理员 发布于 5年前   513

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个评论)
    • zookeeper安装流程步骤(0个评论)
    • 在java中你背的“八股文”可能已经过时了(2个评论)
    • 在php8.0+版本中使用属性来增加值代码示例(3个评论)
    • java 正则表达式基础,实例学习资料收集大全 原创(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2018-03
    • 2020-03
    • 2023-05
    • 2023-11
    • 2024-01
    Top

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

    侯体宗的博客