下面是我编写的一个小程序,很简单的,就是随机产生100个数,写入二进制文件中,然后再读取然后显示   加上一个主函数,有三个函数可是编译的时候出错了,求有心人帮我在他的机子上编译一下,然后帮我看看这个错误是什么意思。。谢谢了  感激不尽。
import java.io.*;
class E
{
public static void Input()
{
int x;
try
{
DataOutputStream out=new DataOutputStream(new FileOutputStream("123.dat"));
for(int i=0;i<100;i++)
{
x=(int)Math.random()*100;
out.writeInt(x);
}
out.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}

public static void Output()
{
int x;
try
{
DataInputStream in=new DataInputStream(new FileInputStream("123.dat"));
while(in.available()>0)
{
x=in.readInt();
System.out.println(x);
}
}
in.close();
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
public static void main(String[] arges)
{
Input();
output();
}
}

解决方案 »

  1.   


    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    class E
    {
        public static void Input()
        {
            int x;
            try
            {
                DataOutputStream out = new DataOutputStream(new FileOutputStream(
                        "123.dat"));
                for (int i = 0; i < 100; i++)
                {
                    x = (int) Math.random() * 100;
                    out.writeInt(x);
                }
                out.close();
            }
            catch (Exception e)
            {
                System.out.println(e.getMessage());
            }
        }
        
        public static void Output()
        {
            int x;
            try{
                DataInputStream in=new DataInputStream(new FileInputStream("123.dat"));
                while(in.available()>0)
                {
                    x=in.readInt();
                    System.out.println(x);
                }
                in.close();
            }
            catch(Exception e)
            {
                
                System.out.println(e.getMessage());
            }
        }
        
        public static void main(String[] arges)
        {
            Input();
            Output();
        }
    }其实按规范方法名应该小写,类名大写。
      

  2.   

    你的Output方法明是大写的,而你在mian方法中式小写的 。所以编译出错
      

  3.   

    import java.io.*;/**
     *
     * @author Administrator
     */
    class E {    public static void input() {
            int x;
            try {
                DataOutputStream out = new DataOutputStream(new FileOutputStream("123.dat"));
                for (int i = 0; i < 100; i++) {
                    double d=Math.random();
    //                System.out.println(d);
                    x = (int) (d * 100);
    //                System.out.println(x);
                    out.writeInt(x);
                }
                out.close();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }    public static void output() {
            int x;
            try {
                DataInputStream in = new DataInputStream(new FileInputStream("123.dat"));
                while (in.available() > 0) {
                    x = in.readInt();
                    System.out.println(x);
                }
                in.close();
            } catch(Exception e){
                System.out.println(e.getMessage());
        }
    }
    public static void main(String[] args){
        input();
        output();
    }
    }
    以下方面的问题:
    1.x=(int)Math.random()*100;
    导致的结果是x值总为0,运算时候优先级的问题,先计算的(int)Math.random(),然后乘以100
    2.编译不通过out.close();要放在try当中
    3.方法名称input() ouput()根据Java的命名习惯,开头字母应该是小写最后,你用的是DataOutputStream这个对象存储数字,打开123.dat是没法直接阅读的,但还是可以程序输出
      

  4.   

    package h;import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;public class E {
    public static void Input() {
    int x;
    try {
    DataOutputStream out = new DataOutputStream(new FileOutputStream(
    "123.dat"));
    for (int i = 0; i < 100; i++) {
    x = (int) Math.random() * 100;
    out.writeInt(x);
    }
    out.close();
    } catch (Exception e) {
    System.out.println(e.getMessage());
    }
    } public static void Output(){
    int x;
    try
    {
    DataInputStream in=new DataInputStream(new FileInputStream("123.dat"));
    while(in.available()>0)
    {
    x=in.readInt();
    System.out.println(x);
    }
    in.close();
    }

    catch(Exception e)
    {
    System.out.println(e.getMessage());
    }
    } public static void main(String[] arges) {
    Input();
    Output();
    }
    }