用Java操作文本文件?

时间:2013-09-24 22:57:30

标签: java text arraylist

我正在尝试创建一个读取外部.txt文件并对其进行操作的程序。该文件有5组不同的数据,每组4行(2个是int,2个字符串)。我需要使用Scanner类读取文件,创建一个对象来保存每组数据(编写一个将数据组存储为单个对象的类(让我们称之为ProgramData))。然后我需要创建一个ProgamData对象并将其放入ArrayList中,并为5个组中的每一个重复。

我有一个文本文件,我用扫描仪读取它(我确认我通过在命令行上打印来做到这一点)。我完全迷失了。任何帮助都将非常感激。

不是这样会有所帮助,但到目前为止这是我的代码:

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

public class Project1
{
    public static void main (String[] args) throws IOException 
    {

        File dataFile = new File("C:\\Users/data.txt");
        Scanner fileReader = new Scanner(dataFile);

        int firstLine = fileReader.nextInt();
        int secondLine = fileReader.nextInt();
        String whiteSpace = fileReader.nextLine();
        String thirdLine = fileReader.nextLine();
        String fourthLine = fileReader.nextLine();

        ArrayList<String> newArray = new ArrayList<String>();

    }


}   

2 个答案:

答案 0 :(得分:0)

确保在读取输入文件时,使用Scanner类的hasNext()方法。它会检测文件中是否还有一行,因此您无法到达文件末尾。像这样使用

 // get file input
 // this will make sure there are still lines left within the 
 // file and that you have not reached the end of the file
 while(fileReader.hasNext()) {

     int firstLine = fileReader.nextInt();
    int secondLine = fileReader.nextInt();
    String whiteSpace = fileReader.nextLine();
    String thirdLine = fileReader.nextLine();
    String fourthLine = fileReader.nextLine();

}

您需要使用上面提供的操作来执行您要查找的操作。

答案 1 :(得分:0)

以下是您可以遵循的步骤:

  1. 创建一个名为ProgramData的类
  2. 创建一个接受您的组数据的构造函数。 - &GT; What is constructor
  3. 现在在Project1类中正确读取文件。 - &GT; Scanner Tutorial Reading a txt file using scanner java

  4. 从文件中获取所有第一组数据后,将其传递给ProgramData类并创建类似

    的实例
      ProgramData pd1 = new ProgramData (/* list of parameter */)
    
  5. 将该ProgramData实例添加到Arraylist,如下所示

     //  Define Arraylilst 
     ArrayList<ProgramData > list= new ArrayList<ProgramData >();
    
     // Do some operation like reading or collecting the data and creating object 
     // shown in step 4
    
     list.add(pd1); // add new object of group to list.
    
  6. 我希望这会帮助您实现目标。如果您有任何疑问,请询问。祝你好运