运行出来为什么会报这个错误 java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0 ?


这是测试类
package work;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class TransRecordTest {
    public static void main(String[] args) {
        File file = new File("test1.txt");
        for(TransRecord transRecord : readByBuffer(file)) {
            System.out.println(transRecord);
        }
        
    }
    
    public static ArrayList<TransRecord> readByBuffer(File file) {
        ArrayList<TransRecord> list = new ArrayList<TransRecord>();
        try(BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"utf-8"))){
            String str = null;
            while((str = br.readLine()) != null) {
                if(str.charAt(0) != '#') {
                    String[] string = str.split("\\|");
                    TransRecord transRecord = new TransRecord(string[0],string[1],Integer.parseInt(string[2]),Integer.parseInt(string[3]),Long.parseLong(string[4]),Long.parseLong(string[5]),Double.parseDouble(string[6]));
                    list.add(transRecord);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return list;
        
        
    }
}
实体类
package work;

public class TransRecord {
    private String customerNumber;//客户号
    private String customerName;//姓名
    private int institutionNumber;//所述机构号
    private int sex;//性别
    private long accountNumber;//账号
    private long happenTime;//发生时间
    private double amount;//发生额
    
    public TransRecord() {
        super();
    }

    public TransRecord(String customerNumber, String customerName, int institutionNumber, int sex,
            long accountNumber, long happenTime, double amount) {
        super();
        this.customerNumber = customerNumber;
        this.customerName = customerName;
        this.institutionNumber = institutionNumber;
        this.sex = sex;
        this.accountNumber = accountNumber;
        this.happenTime = happenTime;
        this.amount = amount;
    }

    public String getCustomerNumber() {
        return customerNumber;
    }

    public void setCustomerNumber(String customerNumber) {
        this.customerNumber = customerNumber;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public int getInstitutionNumber() {
        return institutionNumber;
    }

    public void setInstitutionNumber(int institutionNumber) {
        this.institutionNumber = institutionNumber;
    }

    public int getSex() {
        return sex;
    }

    public void setSex(int sex) {
        this.sex = sex;
    }

    public long getAccountNumber() {
        return accountNumber;
    }

    public void setAccountNumber(long accountNumber) {
        this.accountNumber = accountNumber;
    }

    public long getHappenTime() {
        return happenTime;
    }

    public void setHappenTime(long happenTime) {
        this.happenTime = happenTime;
    }

    public double getAmount() {
        return amount;
    }

    public void setAmount(double amount) {
        this.amount = amount;
    }

    @Override
    public String toString() {
        return ( "客户号=" + customerNumber + "|姓名=" + customerName
                + "|所述机构号=" + institutionNumber + "|性别=" + sex + "|账户=" + accountNumber
                + "|发生时间=" + happenTime + "|发生额=" + amount + "");
        
    }
}

test1.txt
#客户号 姓名 所述机构号 性别 帐号 发生时间 发生额
000001|刘德华|0000|1|4155990188888888|20060720200005|300.00
000201|晓龙|0002|1|4155990199999999|20060720200005|500.00
000101|黄晓明|0012|1|4155990100000000|20060720200005|1000.50
000101|张东健|0012|1|4155990155555555|20060720200005|600.99
000301|梁朝伟|0013|0|4155990111111111|20060722201005|5000.00
000001|刘德华|0000|1|4155990188888888|20060725200005|200.00
#asdfads
#dfadsafdsa

另外新建个文件也能正常运行,在项目里面的文件一运行就会报错

split("|")

字符串索引超出范围,这得debug一下了,这盲看也不好看