io流-readUTF()使用报 java.io.EOFException异常

问题描述

readUTF()使用报 java.io.EOFException异常

今天在编程的时候,用到了DataInPutStream类的readUTF()方法时报了个异常,查了好多资料也不能解决,求大神指点啊.高分悬赏.

 package IO流;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class DataTest {

    /**
     * 数据输入输出流
     *
     */
    public static void main(String[] args) throws IOException {
        //向指定文件中写入数据
        //打开文件输出流
        FileOutputStream fos=new FileOutputStream("G://word.txt");
        //将此输出流链接到指定基础输出流DataOutPutStream
        DataOutputStream dos=new DataOutputStream(fos);
        //写入数据:
        dos.writeBytes("我是大禹!");//用此方法写入的数据用记事本打开是乱码
        dos.writeChars("我治水!");//用此方法写入的数据用记事本打开是乱码
        dos.writeUTF("你智障吗?");
        //关闭流
        fos.close();
        //从文件中读取数据
        //首先打开文件输入流
        FileInputStream fis=new FileInputStream("G://word.txt");
        //将此输入流连接到基本数据输入流DataInPutStream
        DataInputStream dis=new DataInputStream(fis);
        //开始读取数据啦
//      String s=dis.readUTF();
        System.out.println(dis.readUTF());
        dis.close();

    }

}

异常信息:
Exception in thread "main" java.io.EOFException
at java.io.DataInputStream.readFully(DataInputStream.java:180)
at java.io.DataInputStream.readUTF(DataInputStream.java:592)
at java.io.DataInputStream.readUTF(DataInputStream.java:547)
at IO流.DataTest.main(DataTest.java:35)

解决方案

java.io.EOFException这个表示读到了文件尾,没数据可读了

解决方案二:

java.io.EOFException解决

解决方案三:

直接fileinputstream读取呗

解决方案四:

虽然我不清楚DataOutputStream 这个类的,但是你读取数据的时候应该加个while循环判断是否读到尾部了

时间: 2024-10-27 22:59:43

io流-readUTF()使用报 java.io.EOFException异常的相关文章

io流-如何理解这个java程序

问题描述 如何理解这个java程序 package exercise_9; import java.util.*; import java.io.*; public class Exercise9_16 { /**Main method*/ public static void main(String[] args) throws Exception { // Check command line parameter usage if (args.length != 1) { System.ou

Java基于IO流读取文件的方法_java

本文实例讲述了Java基于IO流读取文件的方法.分享给大家供大家参考,具体如下: public static void readFile(){ String pathString = TEST.class.getResource("/simu").getFile(); try { pathString = URLDecoder.decode(pathString, "utf-8"); } catch (UnsupportedEncodingException e1)

Java IO: 流

原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) Java IO流是既可以从中读取,也可以写入到其中的数据流.正如这个系列教程之前提到过的,流通常会与数据源.数据流向目的地相关联,比如文件.网络等等. 流和数组不一样,不能通过索引读写数据.在流中,你也不能像数组那样前后移动读取数据,除非使用RandomAccessFile 处理文件.流仅仅只是一个连续的数据流. 某些类似PushbackInputStream 流的实现允许你将数据重新推回

Java中IO流知识点总结

一.流的分类 1.按功能分 读取流:InputStream Reader 写出流:OutPutStream Writer 2.按流的类型分类 字节流:InputStream OutputStream 字符流:Reader Writer 二.流功能分析 读取流是从输入设备或数据对象中读取数据到程序,用程序进行处理读入的数据,写出流是把程序处理的数据输出到 输出设备上比如硬盘和控制台. 字节流读取和写入的数据单位是字节,可以读取和写入任何类型的数据.字符流读取跟写入的数据单位是字符,只能 读取和 写

Java IO: 管道

原文链接 作者: Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com) Java IO中的管道为运行在同一个JVM中的两个线程提供了通信的能力.所以管道也可以作为数据源以及目标媒介. 你不能利用管道与不同的JVM中的线程通信(不同的进程).在概念上,Java的管道不同于Unix/Linux系统中的管道.在Unix/Linux中,运行在不同地址空间的两个进程可以通过管道通信.在Java中,通信的双方应该是运行在同一进程中的不同线程. 通过Java IO创建管道

Java IO 概述

原文链接作者: Jakob Jenkov   译者: 李璟(jlee381344197@gmail.com)  校对:方腾飞 在这一小节,我会试着给出Java IO(java.io)包下所有类的概述.更具体地说,我会根据类的用途对类进行分组.这个分组将会使你在未来的工作中,进行类的用途判定时,或者是为某个特定用途选择类时变得更加容易. 输入和输出 – 数据源和目标媒介 术语"输入"和"输出"有时候会有一点让人疑惑.一个应用程序的输入往往是另外一个应用程序的输出.那么

java io学习(三) 管道的简介,源码分析和示例

管道(PipedOutputStream和PipedInputStream)的简介,源码分析和示例 本章,我们对java 管道进行学习. java 管道介绍 在java中,PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流. 它们的作用是让多线程可以通过管道进行线程间的通讯.在使用管道通信时,必须将PipedOutputStream和PipedInputStream配套使用. 使用管道通信时,大致的流程是:我们在线程A中向PipedOutputStr

Java IO教程

Java IO 是一套Java用来读写数据(输入和输出)的API.大部分程序都要处理一些输入,并由输入产生一些输出.Java为此提供了java.io包. 如果你浏览下java.io包,会对其中各样的类选择感到迷惑.这些类的作用都是什么?对于某个任务该选择哪个类?怎样创建你自己的类做插件?这个手册的目的就是给你介绍这些类是如何组织的,以及怎样使用他们,因此你就不会疑惑需要时怎样选取合适的类,或者是否有一个满足你需求的类已经存在了. Java.io 包的范围 java.io 包并没有涵盖所有输入输出

Java IO

一.java io 概述 1.1 相关概念 Java IO Java IO即Java 输入输出系统.不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件.控制台.网络),我们还要考虑具体和它们的通信方式(顺序.随机.二进制.按字符.按字.按行等等).Java类库的设计者通过设计大量的类来攻克这些难题,这些类就位于java.io包中. 在JDK1.4之后,为了提高Java IO的效率,Java