gpt4 book ai didi

java - 运行 java 代码时出现 arrayoutofbond 错误

转载 作者:行者123 更新时间:2023-12-01 13:23:42 24 4
gpt4 key购买 nike

  1. 在给定代码下运行时出现 arrayoutofbond 错误,
    有时它按预期运行,有时却给出错误。谁能帮助我哪里错了。

       import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;

    public class getFileContent{

    public void listFiles() throws IOException, InterruptedException{

    File directory = new File("C:\\ScriptLogFile\\");
    File[] myarray;
    myarray=directory.listFiles();
    int i=0;
    ArrayList<String> arrayList = new ArrayList<String>();
    SimpleDateFormat sdf = new SimpleDateFormat("ddMMyyyy_hhmmss");
    Date curDate = new Date();
    String strDate = sdf.format(curDate);
    String fileName = strDate;
    File file = new File("C:\\ExcelReport_"+fileName+".csv");
    FileWriter fileWritter = new FileWriter(file, true);
    BufferedWriter bwr = new BufferedWriter(fileWritter);
    String filename = null;
    try {
    for (int j = 0; j < myarray.length; j++)
    {
    File path=myarray[j];
    FileInputStream fis = new FileInputStream (path);
    BufferedReader br = new BufferedReader(new InputStreamReader(fis));
    if(path.isFile()){
    if(path.getName().endsWith(".csv")){
    filename = path.getName();
    String line;
    bwr.write(filename+",");
    while ((line = br.readLine()) != null) {
    if(line.contains("-")){
    String[] part = line.split("-");
    arrayList.add(part[1]);
    bwr.write(arrayList.get(i)+",");
    i++;
    }
    else{

    }
    }
    bwr.write("\r\n");
    }
    }

    }
    }catch (FileNotFoundException e) {
    e.printStackTrace();
    }
    bwr.close();
    }

    public static void main(String[] args) throws IOException, InterruptedException {
    getFileContent gfc = new getFileContent();
    gfc.listFiles();
    }
    }

最佳答案

我们需要堆栈跟踪来查看引发异常的位置。然而,您似乎对 part[] 的长度做出假设。请记住,数组的索引为 0,第一个条目位于索引 0,即 part[0]。即使如此,一般来说,实际上根本不需要太多条目:"xyz".split("-") 是一个长度为 1 的数组,其唯一元素 "xyz",位于索引 0。

关于java - 运行 java 代码时出现 arrayoutofbond 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21898815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com