如何读取文件的某些部分并将其存储在java中的数组中

时间:2015-02-19 11:46:35

标签: java

所以我目前有一个名为Hotel的String数组。在此数组中,元素包含住在酒店的人的姓名。 (我写了一个while循环,用户只输入一个房间号和一个名字。房间号对应于数组索引,名称包含该特定索引的元素。例如3个Jim,在数组中,第4个索引将是包含元素'Jim'。我不能使用arraylist,只能使用数组..我所交付的具体化部分。)

这是整个计划的一部分。这是我写的将数组数据保存到文件中的方法:

private static void savingToFile(String[] hotelRef) {
    System.out.println("Creating a text file called Hotel Data");
    File fileObject = new File("C://Hotel_Data.txt");

    if (!fileObject.exists()) {
        try {
            fileObject.createNewFile();
            System.out.println("File has been created in the C directory");
        } catch (IOException e) {
            System.out.println("Something went wrong in the process " + e);
        }
    }

    try {
        FileWriter fs = new FileWriter(fileObject);
        BufferedWriter writer = new BufferedWriter(fs);

        for (int i = 0; i < hotelRef.length; i++) {
            String hoteldata = i + " " + hotelRef[i];
            writer.write(hoteldata);
            writer.newLine();
        }
        writer.close();

    } catch (IOException e) {
        System.out.println("Something went wrong " + e);
    }

}

我已经运行了程序,它运行正常。输出一个文件,其中包含房间号和当前在该房间中占用的人的姓名。 现在我需要制作另一种方法,我可以将文件中的数据加载到数组中,但我不知道如何获取文件中的各个部分。例如。我不知道如何只从数据中获取名称而不获取房间号..

1 个答案:

答案 0 :(得分:1)

只需读取文件并使用String.split方法获取房间号和名称。像这样:

  String[] hotelRef = new String[MAX_NO_OF_ROOMS];
  FileInputStream in = new FileInputStream("Hotel_Data.txt");
  BufferedReader br = new BufferedReader(new InputStreamReader(in));
  String hotelLine;

  while((hotelLine = br.readLine())!= null)
  {
     //split the line contents
     String hotelLineItems[] = hotelLine.split("\\s");
     Integer roomNo = Integer.valueOf(hotelLineItems[0]);
     String name = hotelLineItems[1];
     hotelRef[roomNo] = name;
  }