import java.io.*;
class Example1006
{
public static void main(String[] args) throws IOException
{
//输出流
OutputStream fo=new FileOutputStream("student.dat",true);
DataOutputStream out=new DataOutputStream(fo);
//输入流
Reader r=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(r);
String number,name,english,computer;
int score1,score2;
while(true)
{
System.out.println ("Number:");
name=in.readLine();
if(number.length()==0)
break;
}
while(true)
{
System.out.println ("Name:");
name=in.readLine();
if(name.length()!=0)
break;
}
while(true)
{
System.out.print("English:");
english=in.readLine();
if(english.length()!=0)
{
try
{
score1=Integer.parseInt(english);
}
catch(NumberFormatException e)
{
continue;
}
break;
}
}
while(true)
{
System.out.println ("Computer:");
computer=in.readLine();
if(computer.length()!=0)
{
try
{
score2=Integer.parseInt(computer);
}
catch(NumberFormatException e)
{
continue;
}
break;
}
}
out.writeUTF(number);
out.writeUTF(name);
out.writeInt(score1);
out.writeInt(score2);
}
in.close();
out.close();
}
照书上打得,用jcreator,为什么会出错????
class Example1006
{
public static void main(String[] args) throws IOException
{
//输出流
OutputStream fo=new FileOutputStream("student.dat",true);
DataOutputStream out=new DataOutputStream(fo);
//输入流
Reader r=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(r);
String number,name,english,computer;
int score1,score2;
while(true)
{
System.out.println ("Number:");
name=in.readLine();
if(number.length()==0)
break;
}
while(true)
{
System.out.println ("Name:");
name=in.readLine();
if(name.length()!=0)
break;
}
while(true)
{
System.out.print("English:");
english=in.readLine();
if(english.length()!=0)
{
try
{
score1=Integer.parseInt(english);
}
catch(NumberFormatException e)
{
continue;
}
break;
}
}
while(true)
{
System.out.println ("Computer:");
computer=in.readLine();
if(computer.length()!=0)
{
try
{
score2=Integer.parseInt(computer);
}
catch(NumberFormatException e)
{
continue;
}
break;
}
}
out.writeUTF(number);
out.writeUTF(name);
out.writeInt(score1);
out.writeInt(score2);
}
in.close();
out.close();
}
照书上打得,用jcreator,为什么会出错????
一个是:倒数第4行
out.writeInt(score2);
}
in.close();
这里 中间多了一个} 相应的 在最后一行加上一个};第二是,
while (true) {
System.out.println("Number:");
name = in.readLine();
if (number.length() == 0) //这里 但是你的number根本没有初始化 所以有问题
break;
}
同样的道理 后面也有 out.writeUTF(number);
解决的方法是 在
String number的时候进行初始化 String number="";或者初始化成其它的字符串
import java.io.*;
class Example1006
{
public static void main(String[] args) throws IOException
{
//输出流
OutputStream fo=new FileOutputStream("student.dat",true);
DataOutputStream out=new DataOutputStream(fo);
//输入流
Reader r=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(r);
String number,name,english,computer;
int score1,score2;
while(true)
{
System.out.println ("Number:");
number=in.readLine();
if(number.length()==0)
break;
}
while(true)
{
System.out.println ("Name:");
name=in.readLine();
if(name.length()!=0)
break;
}
while(true)
{
System.out.print("English:");
english=in.readLine();
if(english.length()!=0)
{
try
{
score1=Integer.parseInt(english);
}
catch(NumberFormatException e)
{
continue;
}
break;
}
}
while(true)
{
System.out.println ("Computer:");
computer=in.readLine();
if(computer.length()!=0)
{
try
{
score2=Integer.parseInt(computer);
}
catch(NumberFormatException e)
{
continue;
}
break;
}
}
out.writeUTF(number);
out.writeUTF(name);
out.writeInt(score1);
out.writeInt(score2);
}
in.close();
out.close();
}
D:\java作业\第九章\ThisThream.java:67: 需要 <标识符>
in.close();
^
D:\java作业\第九章\ThisThream.java:68: 需要 <标识符>
out.close();
^
2 错误处理已完成。
import java.io.*;
class Example1006
{
public static void main(String[] args) throws IOException
{
// 输出流
OutputStream fo=new FileOutputStream("student.dat",true);
DataOutputStream out=new DataOutputStream(fo);
// 输入流
Reader r=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(r);
//String number,name,english,computer;// number is not initialized
String number="",name,english,computer;// number is not initialized
int score1,score2;
while(true)
{
System.out.println ("Number:");
name=in.readLine();
if(number.length()==0)
break;
}
while(true)
{
System.out.println ("Name:");
name=in.readLine();
if(name.length()!=0)
break;
}
while(true)
{
System.out.print("English:");
english=in.readLine();
if(english.length()!=0)
{
try
{
score1=Integer.parseInt(english);
}
catch(NumberFormatException e)
{
continue;
}
break;
}
}
while(true)
{
System.out.println ("Computer:");
computer=in.readLine();
if(computer.length()!=0)
{
try
{
score2=Integer.parseInt(computer);
}
catch(NumberFormatException e)
{
continue;
}
break;
}
}
out.writeUTF(number);
out.writeUTF(name);
out.writeInt(score1);
out.writeInt(score2);
//}wrong
in.close();
out.close();
//should be here
}
}