文章目录

  • 一. 以集合为对象读写文件 ( 最优解 )
  • 二. 写入空值作为文件结尾标志, 读到null终止
  • 三. 处理 EOFException 时继续编码

一. 以集合为对象读写文件 ( 最优解 )

static ObjectOutputStream oos = null;public static void ObjectOutputStreamTest ( ) {ArrayList<Person> person = new ArrayList<Person>(Arrays.asList( new Person[] {new Person( "001", "hhh", 12 ),new Person( "003", "iii", 18 ),new Person( "002", "aaa", 13 )} ));try {oos = new ObjectOutputStream( new FileOutputStream( "D:\\person_date.txt" ) );oos.writeObject( person );oos.flush();} catch ( Exception e ) {e.printStackTrace( );}
}
static ObjectInputStream ois = null;public static void ObjectInputStreamTest ( ) {ArrayList<Person> person = new ArrayList<Person>( );try {ois = new ObjectInputStream( new FileInputStream( "D:\\person_date.txt" ) );person = (ArrayList<Person>)ois.readObject();} catch ( Exception e ) {e.printStackTrace( );}for ( Person p : person ) {System.out.println("no :" + p.getNo() +"\n"+"name: " + p.getName() +"\n"+"age: " +p.getAge() +"\n" );}
}

二. 写入空值作为文件结尾标志, 读到null终止

如果写文件的时候忘记空值, 读文件会麻烦

        ArrayList<Person> person = new ArrayList<Person>( );try {ois = new ObjectInputStream( new FileInputStream( "D:\\person_date.txt" ) );Object obj = null;while ( (obj=ois.readObject()) != null ) {person.add( (Person)obj );}for ( Person p : person ) {System.out.println("no :" + p.getNo() +"\n"+"name: " + p.getName() +"\n"+"age: " +p.getAge() +"\n" );}} catch ( Exception e ) {e.printStackTrace( );}
        Person[] person = new Person[] {new Person( "001", "hhh", 12 ),new Person( "003", "iii", 18 ),new Person( "002", "aaa", 13 ),null};try {oos = new ObjectOutputStream( new FileOutputStream( "D:\\person_date.txt" ) );for ( Person p : person ) {oos.writeObject( p );}oos.flush();} catch ( Exception e ) {e.printStackTrace( );}

三. 处理 EOFException 时继续编码

        Person[] person = new Person[] {new Person( "001", "hhh", 12 ),new Person( "003", "iii", 18 ),new Person( "002", "aaa", 13 ),};try {oos = new ObjectOutputStream( new FileOutputStream( "D:\\person_date.txt" ) );for ( Person p : person ) {oos.writeObject( p );}oos.flush();} catch ( Exception e ) {e.printStackTrace( );} catch ( EOFException e ) {// 这里继续写读到文件结尾的之后的操作}

java 对象流判断文件末尾 ( end of file / eof异常处理 )相关推荐

  1. 基于JAVA对象流写的图书进销存系统管理

    基于JAVA对象流写的图书进销存系统管理 1.用户登录 用户只需一个,即admin管理员,用户密码为123456,用户登录信息保存在属性文件user. properties中,用户登录时输入用户名和密 ...

  2. Java io流---拷贝文件夹下的所有文件和目录

    Java io流-拷贝文件夹下的所有文件和目录 代码: package demo01;import java.io.*; import java.util.TreeMap;public class C ...

  3. java 不存在就创建,java怎么实现判断文件是否存在,不存在就创建的方法

    java怎么实现判断文件是否存在,不存在就创建的方法 发布时间:2020-06-23 11:29:37 来源:亿速云 阅读:118 作者:Leah 这篇文章运用简单易懂的例子给大家介绍java实现判断 ...

  4. java对象转xml文件

    目录 前言: 正文: 技术:JAXB 步骤: 1.将所需要的xml按照层级结构创建相应的对象 2.对象中需要指定xml节点标签名,有两种方式: (1)第一种: (2)第二种: 3.使用方法: 4.PS ...

  5. java io流复制文件简单实例

    java io流复制文件简单实例 实例1: package com.io;import java.io.BufferedInputStream; import java.io.BufferedOutp ...

  6. java io流读写文件换行_java基础io流——OutputStream和InputStream的故事(温故知新)...

    io流概述: IO流用来处理设备之间的数据传输,上传文件和下载文件,Java对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中. IO流分类 按照数据流向 输入流 读入数据 输出流 写出 ...

  7. java用于保存登录对象怎么写,利用对象流模仿登陆注册功能——Java对象流应用...

    要求: 1.建一个User类,类中结构有用户名.密码.注册日期三个属性, 一个注册方法和一个登录方法. 2.建一个Data类,用一个List装载用户数据,有保存数据,读取数据的方法. 3.利用对象流, ...

  8. JAVA~~IO流和文件

    ​​​​​​​​ Io流的分类 有多种分类方式: 一种方式是按照流的方向进行分类: 以内存作为参照物, 往内存中去,叫做输入(Input).或者叫做读(Read). 从内存中出来,叫做输出(Outpu ...

  9. java缓冲流 复制文件_java使用缓冲流复制文件的方法

    本文实例为大家分享了java使用缓冲流复制文件的具体代码,供大家参考,具体内容如下 [1] 程序设计 /*------------------------------- 1.缓冲流是一种处理流,用来加 ...

最新文章

  1. 【css】基础学习总结
  2. 简述WSL 2安装和WSL 1转换为WSL 2
  3. python日志模块为什么打印到界面_如何将外部模块的日志消息打印到主Python模块的终端窗口?...
  4. JAVA内部类示例分析
  5. SparkStructured报错:Failed to send RPC xxx to /xxx:34744: ClosedChannelException Lost executor
  6. linux如何批量清理文件大小,Linux下自动清理超过指定大小文件的方法
  7. java list 泛型 转换_Java中List与数组互相转换
  8. Java程序性能优化
  9. 发票专用驱动sjz_增值税发票选择确认平台使用手册
  10. 小福利,杨格(Young)不等式验证之用python里面的matplotlib和numpy模块画图
  11. 2018年全国大学生电子设计竞赛
  12. 综合交易平台API技术开发指南
  13. 智能信用卡还款软件是什么?和传统代还平台有什么区别?
  14. Kerbose 原理
  15. 极大似然估计量(θ)
  16. C++如何实现猜数游戏
  17. 计算机游戏锁怎么打开,电脑玩游戏锁帧怎么办
  18. 在VMware下安装中标麒麟操作系统6.7版本
  19. 易观郭炜:流动水系数造未来
  20. AVR单片机Atmega128外扩RAM

热门文章

  1. 有哪些蓝牙耳机的音质比较好?2022好音质蓝牙耳机推荐
  2. 从“手心”功能看360手机卫士互联网+服务新思路
  3. DNSPod十问李明顺:中小企业老板如何赚钱?
  4. Linux学习小结(11.7)
  5. 田雪松硬笔行书临文征明《滕…
  6. 【优达学城测评】P3: Wrangle OpenStreetMap Data--Using Beautiful Soup(4)
  7. AP开启WMM后STA无法认证
  8. 王道操作系统:2.2_1处理机调度的概念、层次
  9. 凤舞天骄单机 mysql_凤舞天骄单机版
  10. Dapp开发教程一 Asch Dapp Hello World 1