【问题标题】:File data not being read processing文件数据未被读取处理
【发布时间】:2022-01-07 07:12:33
【问题描述】:

我完全被卡住了,我的文件数据在使用 loadStrings(); 处理时没有被读取。我已经尝试了一切。这是我的代码:

主类

Student[] studentList;
String[] fileData;

void loadFileData(){
  fileData = loadStrings("StudentData.txt");
}

void setup(){
  loadFileData();
  studentList = new Student[fileData.length/3];
  for(int i = 0; i < fileData.length/3; i++){
    studentList[i].studentName = fileData[i];
    studentList[i].studentAddress = fileData[i+1];
    studentList[i].studentNumber = parseInt(fileData[i+3]);
  }
  printArray(fileData);
}

学生班

class Student{
  String studentName;
  String studentAddress;
  int studentNumber;
  
  Student(String name, String address, int number){
    studentName = name;
    studentAddress = address;
    studentNumber = number;
  }
}

我的文件目录如下:

>Processing
   >data
      >StudentData.txt
   >student
   >studentSearch

所有的数据都以行、姓名、地址、数字、重复格式进行

谢谢!

【问题讨论】:

  • 有什么问题?你得到一个错误或只是没有数据?当您执行printArray 时会出现什么?到目前为止,您尝试过什么?
  • 您好!我得到一个引用 fileData 数组的 nullPointerException。它似乎只是没有将数据写入数组。
  • 以后请发布有关您的问题的更多详细信息(错误是什么,发生在哪里,您为缩小问题范围做了什么尝试)。我必须运行您的代码才能亲自查看。您可能还会发现缩小问题范围以解释问题的过程会导致您自己找到解决方案。

标签: processing


【解决方案1】:

我复制了您的代码并在 Processing 中运行它。 我在这条线上得到了NullPointerException

studentList[i].studentName = fileData[i];

但这不是由fileData 数组引起的。如果在加载后立即打印数组,您可以看到这一点。数据在那里:

fileData = loadStrings("StudentData.txt");
printArray(fileData);

您收到错误消息,因为您尝试访问不存在的 Student 对象。您创建了一个数组来保存对象,但在尝试在循环中访问它们之前实际上并没有将任何对象放入其中。所以studentList[i] 为空。

您可以在创建对象时将数据直接传递给 Student 构造函数:

studentList[i] = new Student(fileData[i], fileData[i+1], parseInt(fileData[i+3]));

【讨论】:

    猜你喜欢
    • 2021-08-03
    • 2015-06-08
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多