我需要使用 datainputstream 打印用户输入的数据
和 dataoutputstream 但这甚至没有正确地获取输入。任何人都可以告诉我
我的代码有什么问题吗?
import java.io.*;
class Employee
{
int id;
String name;
double salary;
}
public class Ch8Ex2
{
public static void main (String[] args)
{
Employee emp = new Employee();
try
{
File f1 = new File("emp1.dat");
f1.createNewFile();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
DataInputStream da = new DataInputStream(new FileInputStream(f1));
DataOutputStream ad = new DataOutputStream(new FileOutputStream(f1));
System.out.println("Enter your ID:");
emp.id = br.read();
System.out.println("Enter your name:");
emp.name = br.readLine();
System.out.println("Enter your salary:");
String str = br.readLine();
emp.salary = Double.parseDouble(str);
ad.write(emp.id);
ad.writeUTF(emp.name);
ad.writeDouble(emp.salary);
ad.flush();
ad.close();
System.out.println("ID:"+da.readInt());
System.out.println("Name:"+da.readUTF());
System.out.println("Salary:"+da.readDouble());
da.close();
}
catch(IOException e)
{
}
catch(NumberFormatException e)
{
}
}
}
最佳答案
您需要使用 ad.writeInt(emp.id)
,因为 ad.write(int)
仅写入单个字节。
关于java - 数组数据文件操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14110255/