file 的问题input

handsome2t 2008-07-12 12:38:34
import javax.swing.JOptionPane;
import java.io.*;
public class Player {

private String playername;
private int playernumber;
private int attend;
private int score;




public Player (String pn,int num, int a, int s)
{
playername=pn;
playernumber= num;
attend=a;
score=s;
}


public String getplayername ()
{
return playername;
}
public int getattend()
{
return attend;
}
public int getscore()
{
return score;
}
public int getplayernumber()
{

return playernumber;
}

public static void Menu()throws IOException
{
Player []dataArray=new Player[4];
int c=6;


while(c!= 4)
{
String input = JOptionPane.showInputDialog( "1. Enter the player of detail\n" +
"2. Print the detail of player \n" +
"3.data is writen to file\n"+
"4. Quit\n" +
"Enter your choice");

c=Integer.parseInt(input);
switch (c)
{
case 1: Create(dataArray);
break;

case 2: print(dataArray);
break;

case 3: input(dataArray);
break;
case 4: JOptionPane.showMessageDialog(null, "Bye ");
break;

default: JOptionPane.showMessageDialog(null, "Invalid choice");
break;
}

}


}
public static void Create(Player[] dataArray)throws IOException

{
for(int counter=1;counter<dataArray.length;counter++)
{
String pn=JOptionPane.showInputDialog("Please enter the playername of "+counter);


String ck=JOptionPane.showInputDialog("Enter the numebr of player of "+counter);
int num=Integer.parseInt(ck);

String d=JOptionPane.showInputDialog("Enter the attend of player of "+counter);
int a =Integer.parseInt(d);

String q=JOptionPane.showInputDialog("Enter the getting score of player of "+counter);
int s=Integer.parseInt(q);


dataArray[counter]=new Player(pn,num,a,s);



}


}

public static void input(Player[] dataArray)throws IOException
{


final FileWriter outputFile = new FileWriter("kiss.txt");
final BufferedWriter output= new BufferedWriter(outputFile);
final PrintWriter printstream = new PrintWriter(output);

for (int i=0; i<dataArray.length; i++)
{
printstream.println(dataArray[i].playername);
printstream.println(dataArray[i].playernumber);
printstream.println(dataArray[i].attend);
printstream.println(dataArray[i].score);
}
printstream.close();
System.out.println("Details are written to file");
}
public static void main(String[] args)throws IOException

{
Menu();


}
}





为什么我的输入的数据``存不进文本kiss.txt里面```帮我看看问题```谢谢````
...全文
115 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gannbatte 2008-07-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sanyong3 的回复:]
引用 9 楼 sanyong3 的回复:
引用 5 楼 ps1981sophia 的回复:
你Create的时候counter从1到3,为dataArray[1-3]赋值,没给dateArray[0]赋值,为null.
input的时候i从0开始,dateArray[0].playername等属性肯定报错了。
把Create方法的 for(int counter=1;counter <dataArray.length;counter++)
改成 for(int counter=0;counter <dataArray.length;counter++)


按5楼说的。


我已经测试过楼主的代码,按上面…
[/Quote]
可以
sanyong3 2008-07-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sanyong3 的回复:]
引用 5 楼 ps1981sophia 的回复:
你Create的时候counter从1到3,为dataArray[1-3]赋值,没给dateArray[0]赋值,为null.
input的时候i从0开始,dateArray[0].playername等属性肯定报错了。
把Create方法的 for(int counter=1;counter <dataArray.length;counter++)
改成 for(int counter=0;counter <dataArray.length;counter++)



按5楼说的。
[/Quote]

我已经测试过楼主的代码,按上面说的改就可以了。
ilrxx 2008-07-12
  • 打赏
  • 举报
回复
flush输出流
ps1981sophia 2008-07-12
  • 打赏
  • 举报
回复
你Create的时候counter从1到3,为dataArray[1-3]赋值,没给dateArray[0]赋值,为null.
input的时候i从0开始,dateArray[0].playername等属性肯定报错了。
把Create方法的 for(int counter=1;counter <dataArray.length;counter++)
改成 for(int counter=0;counter <dataArray.length;counter++)
jingulang 2008-07-12
  • 打赏
  • 举报
回复
flush() 刷新 试试
jingulang 2008-07-12
  • 打赏
  • 举报
回复
final PrintWriter printstream = new PrintWriter(output);


for (int i=0; i <dataArray.length; i++)
{
printstream.println(dataArray[i].playername);
printstream.println(dataArray[i].playernumber);
printstream.println(dataArray[i].attend);
printstream.println(dataArray[i].score);
}



你的变量的名字起的 真是霸道 看了半天以为你用PrintStream

但原来是PrintWriter


fangliang510 2008-07-12
  • 打赏
  • 举报
回复
输出的时候加一条空的输出语句:
System.out.println("");
这样试试
sanyong3 2008-07-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ps1981sophia 的回复:]
你Create的时候counter从1到3,为dataArray[1-3]赋值,没给dateArray[0]赋值,为null.
input的时候i从0开始,dateArray[0].playername等属性肯定报错了。
把Create方法的 for(int counter=1;counter <dataArray.length;counter++)
改成 for(int counter=0;counter <dataArray.length;counter++)

[/Quote]

按5楼说的。
qingbt 2008-07-12
  • 打赏
  • 举报
回复
改这个试试:
FileOutputStream fos=new FileOutputStream("kiss.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos);
BufferedWriter bw=new BufferedWriter(osw);
for (int i=0; i <dataArray.length; i++)
{
bw.println(dataArray[i].playername);
bw.println(dataArray[i].playernumber);
bw.println(dataArray[i].attend);
bw.println(dataArray[i].score);
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧