Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中编写对象列表,其中还包含对象列表作为字段_Java_File_Arraylist_Write - Fatal编程技术网

如何在Java中编写对象列表,其中还包含对象列表作为字段

如何在Java中编写对象列表,其中还包含对象列表作为字段,java,file,arraylist,write,Java,File,Arraylist,Write,我有3个类:testreport(它有一个测试执行对象列表)、testexecution(它有一个测试结果对象列表)和testresult(字符串名称和状态)。main中的代码如下所示: TestExecution Writer = new TestExecution(); TestResult testResult1P = new TestResult("Test1", TestStatus.PASSED); TestResult testResu

我有3个类:testreport(它有一个测试执行对象列表)、testexecution(它有一个测试结果对象列表)和testresult(字符串名称和状态)。main中的代码如下所示:

    TestExecution Writer = new TestExecution();

    TestResult testResult1P = new TestResult("Test1", TestStatus.PASSED);
    TestResult testResult1F = new TestResult("Test2", TestStatus.FAILED);
    List<TestResult> testExecutions1 = new ArrayList<>();
    testExecutions1.add(testResult1P);
    testExecutions1.add(testResult1F);
    TestExecution te1 = new TestExecution(testExecutions1);

    TestResult testResult2 = new TestResult("Test1", TestStatus.PASSED);
    TestResult testResult22 = new TestResult("Test2", TestStatus.PASSED);
    List<TestResult> testExecutions2 = new ArrayList<>();
    testExecutions2.add(testResult2);
    testExecutions2.add(testResult22);
    TestExecution te2 = new TestExecution(testExecutions2);

    TestResult testResult3 = new TestResult("Test1", TestStatus.PASSED);
    TestResult testResult33 = new TestResult("Test2", TestStatus.FAILED);
    List<TestResult> testExecutions3 = new ArrayList<>();
    testExecutions3.add(testResult3);
    testExecutions3.add(testResult33);
    TestExecution te3 = new TestExecution(testExecutions3);

    TestResult testResult4 = new TestResult("Test1", TestStatus.NOT_EXECUTED);
    TestResult testResult44 = new TestResult("Test2", TestStatus.NOT_EXECUTED);
    List<TestResult> testExecutions4 = new ArrayList<>();
    testExecutions4.add(testResult4);
    testExecutions4.add(testResult44);
    TestExecution te4 = new TestExecution(testExecutions4);

    
    
    
   
    List<TestExecution> tel = new ArrayList<>();
   
    tel.add(te1);
    tel.add(te2);
    tel.add(te3);
    tel.add(te4);
    
    
    
  
    
     
    TestReport testReport = new TestReport(tel);
    
    
    
    try {
        testReport.write2(tel);
    } catch (IOException e) {
        e.printStackTrace();
    }

    return testReport;
}
TestExecution编写器=新建TestExecution();
TestResult testResult1P=新的TestResult(“Test1”,TestStatus.PASSED);
TestResult testResult1F=新的TestResult(“Test2”,TestStatus.FAILED);
List testExecutions1=新建ArrayList();
testExecutions1.add(testResult1P);
testExecutions1.add(testResult1F);
TestExecution te1=新的TestExecution(testExecutions1);
TestResult testResult2=新的TestResult(“Test1”,TestStatus.PASSED);
TestResult testResult22=新的TestResult(“Test2”,TestStatus.PASSED);
List testExecutions2=新建ArrayList();
testExecutions2.add(testResult2);
testExecutions2.add(testResult22);
TestExecution te2=新的TestExecution(testExecutions2);
TestResult testResult3=新的TestResult(“Test1”,TestStatus.PASSED);
TestResult testResult33=新的TestResult(“Test2”,TestStatus.FAILED);
List testExecutions3=新建ArrayList();
testExecutions3.add(testResult3);
testExecutions3.add(testResult33);
TestExecution te3=新的TestExecution(testExecutions3);
TestResult testResult4=新的TestResult(“Test1”,TestStatus.NOT_EXECUTED);
TestResult testResult44=新的TestResult(“Test2”,TestStatus.NOT_EXECUTED);
List testExecutions4=新建ArrayList();
testExecutions4.add(testResult4);
testExecutions4.add(testResult44);
TestExecution te4=新的TestExecution(testExecutions4);
List tel=new ArrayList();
电话:te1;
电话地址(te2);
电话:te3;
电话地址(te4);
TestReport TestReport=新的TestReport(电话);
试一试{
testReport.write2(电话);
}捕获(IOE异常){
e、 printStackTrace();
}
返回测试报告;
}
我在TestReport中提出了两种方法:

public void write2(List<TestExecution> testExecutionList) throws IOException 
{

    for(int i=0; i<testExecutionList.size(); i++) {
        write3(testExecutionList.get(i).getTestResults());
    }
  
 }

  

public void write3(List<TestResult> testResultList) throws IOException {

      PrintWriter pw = null;
      FileOutputStream fo = null;
      File file = null;
      try {
          file = new File("output2.txt");
          pw = new PrintWriter(new FileOutputStream(file));
          fo = new FileOutputStream(file);
          int datList = testResultList.size();
          for (int i = 0; i < datList; i++) {
              pw.write(testResultList.get(i).getTestName() + " "+ testResultList.get(i).getTestStatus() +"\n");
          }
      } finally {
          pw.flush();
          pw.close();
          fo.close();
      }

  }
public void write2(列表testExecutionList)引发IOException
{

对于write2方法中的(int i=0;i,您将调用write3 4次,每次调用write3时,您都会使用空值再次创建文件。若要修复此问题,请将文件设置为静态,以write2方式创建,或在以write3方式创建之前验证该文件是否不存在。

尝试此方法写入文件:

public void write2(List<TestExecution> testExecutionList) throws IOException
{
    PrintWriter pw = null;
    FileOutputStream fo = null;
    File file = null;
    try {
        file = new File("output2.txt");
        pw = new PrintWriter(new FileOutputStream(file, true));
        fo = new FileOutputStream(file);

        for (TestExecution testExecutionListItem : testExecutionList){
            for (TestResult testResultItem: testExecutionListItem.getTestResults()){
                pw.write(testResultItem.getTestName() + " "+ testResultItem.getTestStatus() +"\n");
            }
        }
    } finally {
        pw.flush();
        pw.close();
        fo.close();
    }
}
public void write2(列表testExecutionList)引发IOException
{
PrintWriter pw=null;
FileOutputStream fo=null;
File=null;
试一试{
file=新文件(“output2.txt”);
pw=新的PrintWriter(新的FileOutputStream(file,true));
fo=新文件输出流(文件);
for(TestExecution testExecutionList:testExecutionList){
对于(TestResult testResultItem:testExecutionListItem.getTestResults()){
write(testResultItem.getTestName()+“”+testResultItem.getTestStatus()+“\n”);
}
}
}最后{
pw.flush();
关闭();
fo.close();
}
}