一个java的赋值打印的初级问题请教

来源:百度知道 编辑:UC知道 时间:2024/06/20 02:49:18
String str = dis.readUTF();
System.out.println(str);
先赋值,再打印,就没错

如果直接打印
System.out.println(dis.readUTF());
就报 java.io.EOFException 错误?

请高手指点!!
不知道是不是和 dis.readUTF(); 有关? 我这个dis 是一个DataInputStream的对象。

我也觉得奇怪:
我测试了一个,在我这里没有问题啊:
我的测试程序如下:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package javaapplication1;

/**
*
* @author 肖亮
*/
public class Main {

public static String getString()
{
try
{
return "您好!";
}
catch(Exception ex)
{
System.out.print(ex);
}
return "";
}
public static void main(String[] args) {
String str=Main.getString();
System.out.print("利用赋值的方式打印的:"+str+"\n");
System.out.print("直接打印的:"+Main.getString()+"\n");
}

}
不知道你是不是这样写的!

我打印出来的结果是:

利用赋值的方式打印的:您好!
直接打印的:您好!

以前好象也碰到过这样的问题
好象就是要先给它分配一块空间
然后才能去读它
绝对是报IO Except