java - 数组数据文件操作

标签 java

我需要使用 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/

相关文章:

java - 如何解决java中Set<Path>的Hibernate映射异常?

java - Thread.interrupt() 被忽略

java - 安装JDK前需要先卸载Java运行环境吗?

java - 在交叉表 jasper-report 中分割行

java - Gui JList Action 监听器

java - 我如何编译包中的类,以便稍后使用 "java Program"(没有包名称)执行它们?

java - 使用计数数组来保存另一个数组的计数

java - 如何让 Java rest api 调用立即返回而不是等待?

java - 如何在android中获取和设置简单的数学函数?

java - java中用Connection引用两个数据库