查阅API文档中有关DataInputStream和DataOutputStream的内容。并编写一个程序使用readInt()方法从输入文件中读入学生成绩,求出学生的总成绩和平均成绩输出到另一个文件中。假设输入文件中的内容格式如下:姓名 语文 数学 外语张三 89 92 95李四 77 81 74王五 87 80 75
不会弄啊,还有啊 available()
方法有什么用呢看不懂啊该死的aip~~
谢谢
不会弄啊,还有啊 available()
方法有什么用呢看不懂啊该死的aip~~
谢谢
DataInputStream dis = new DataInputStream(new FileInputStream("in.dat"));
DataOutputStream dos = new DataOutputStream(new FileOutputStream("out.dat"));
try{
while(dis.available()){
String xm = dis.readUTF():
int yw = dis.readInt();
int xu = dis.readInt();
int wy = dis.readInt();
int sum = yw+xu+wy;
float avg = sum/3.0;
dos.writeUTF(xm);
dos.writeInt(sum);
dos.writeFloat(avg);
}
}finally{
try{dis.close();}catch(Exception e){}
try{dos.close();}catch(Exception e){}
}
}
{
Student[] students = {new Student("Justin",90,80,70),
new Student("momor",95,85,75),
new Student("Bush",88,78,68)};
try{
//按照规定格式写入文档内容
DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream("d:/student.txt"));
for(Student student:students){
dataOutputStream.writeUTF(student.getName());
dataOutputStream.writeInt(student.getYuwen());
dataOutputStream.writeInt(student.getShuxue());
dataOutputStream.writeInt(student.getWaiyu());
}
dataOutputStream.flush();
dataOutputStream.close(); //读出数据并还原为对象
DataInputStream dataInputStream = new DataInputStream(new FileInputStream("d:/student.txt"));
for(int i=0;i<students.length;i++){
String name = dataInputStream.readUTF();
int yuwen = dataInputStream.readInt();
int shuxue = dataInputStream.readInt();
int waiyu = dataInputStream.readInt();
students[i] = new Student(name,yuwen,shuxue,waiyu);
}
dataInputStream.close(); //得到的数据写入成绩文档中
DataOutputStream dataOutputStream1 = new DataOutputStream(new FileOutputStream("d:/grade.txt"));
for(Student student : students)
{
System.out.println(student.getName()+"=="+student.getYuwen()+"=="+student.getShuxue()+"=="+student.getWaiyu());
int sum = student.getYuwen()+student.getShuxue()+student.getWaiyu();
double avg = sum/3;
System.out.println("name:"+student.getName()+" 总分:"+sum+" 均分:"+avg);
dataOutputStream1.writeUTF(student.getName());
dataOutputStream1.writeInt(sum);
dataOutputStream1.writeDouble(avg);
}
dataOutputStream1.flush();
dataOutputStream1.close();
//读取成绩的文档
DataInputStream dataInputStream1 = new DataInputStream(new FileInputStream("d:/grade.txt"));
while(dataInputStream1.available()>0){
String name = dataInputStream1.readUTF();
int sum = dataInputStream1.readInt();
double avg = dataInputStream1.readDouble();
System.out.println(name+" 总分:"+sum+" 均分:"+avg);
}
dataInputStream.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
http://coderanch.iteye.com/blog/1585937