下面是我编写的一个小程序,很简单的,就是随机产生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();
}
}
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();
}
}
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();
}
}其实按规范方法名应该小写,类名大写。
*
* @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是没法直接阅读的,但还是可以程序输出
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();
}
}