“线程中的异常”;“主要”;java.io.IOException:流已关闭

“线程中的异常”;“主要”;java.io.IOException:流已关闭,java,excel,Java,Excel,当我尝试从main方法执行下面的代码时,我得到了streamclosed错误。但是我的代码中没有关闭任何流。我甚至尝试在for循环之后关闭工作簿,但仍然得到了相同的错误。有人能帮我解决这个问题吗 Code: public class ExcelCompare { public void compare(String path1, String path2 ) throws IOException { FileInputStream fs = new FileInput

当我尝试从main方法执行下面的代码时,我得到了streamclosed错误。但是我的代码中没有关闭任何流。我甚至尝试在for循环之后关闭工作簿,但仍然得到了相同的错误。有人能帮我解决这个问题吗

Code: 

public class ExcelCompare
{
    public void compare(String path1, String path2 ) throws IOException
    {
    FileInputStream fs = new FileInputStream(path1);
    XSSFWorkbook wk = new XSSFWorkbook(fs);
    XSSFSheet s = wk.getSheet("Sheet1");
    int rcount = s.getPhysicalNumberOfRows();
    FileInputStream fs1 = new FileInputStream(path2);
    XSSFWorkbook wk1 = new XSSFWorkbook(fs);
    XSSFSheet s1 = wk.getSheet("Sheet1");
    for(int i=1; i<rcount; i++)
    {
        XSSFRow r = s.getRow(i);
        XSSFRow r1 = s1.getRow(i);
        int ccount = r.getPhysicalNumberOfCells();
        for(int j=0;j<=ccount;j++)
        {
            XSSFCell c = r.getCell(j);
            XSSFCell c1 = r1.getCell(j);
            if(c.getCellType()==1)
            {
                if((c.getStringCellValue()).equals(c1.getStringCellValue()))
                    {

                    }
            }

            else
            {
                System.out.println("value mismatch"+ c.getStringCellValue() +c.getStringCellValue());
            }
        }
    }

    }

}

Error: 

Exception in thread "main" java.io.IOException: Stream Closed
    at java.io.FileInputStream.readBytes(Native Method)
    at java.io.FileInputStream.read(FileInputStream.java:255)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
    at org.apache.poi.util.BoundedInputStream.read(BoundedInputStream.java:121)
    at org.apache.poi.util.BoundedInputStream.read(BoundedInputStream.java:103)
    at org.apache.poi.util.IOUtils.copy(IOUtils.java:312)
    at org.apache.poi.util.IOUtils.peekFirstNBytes(IOUtils.java:70)
    at org.apache.poi.util.IOUtils.peekFirst8Bytes(IOUtils.java:57)
    at org.apache.poi.poifs.filesystem.FileMagic.valueOf(FileMagic.java:135)
    at org.apache.poi.openxml4j.opc.internal.ZipHelper.verifyZipHeader(ZipHelper.java:175)
    at org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipStream(ZipHelper.java:209)
    at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:98)
    at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:324)
    at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:295)
    at excel.ExcelCompare.compare(ExcelCompare.java:21)
    at excel.ExcelExecute.main(ExcelExecute.java:13)
代码:
公共课
{
公共无效比较(字符串路径1、字符串路径2)引发IOException
{
FileInputStream fs=新的FileInputStream(路径1);
XSSF工作簿wk=新XSSF工作簿(fs);
XSSFSheet s=wk.getSheet(“Sheet1”);
int rcount=s.getPhysicalNumberOfRows();
FileInputStream fs1=新的FileInputStream(路径2);
XSSF工作簿wk1=新XSSF工作簿(fs);
XSSFSheet s1=wk.getSheet(“Sheet1”);

对于(inti=1;i更新代码中的以下行,它将起作用

    FileInputStream fs1 = new FileInputStream(path2);
    XSSFWorkbook wk1 = new XSSFWorkbook(fs1);
    XSSFSheet s1 = wk1.getSheet("Sheet1");

它与JavaScript无关。您从未使用过
fs1
wk1
在原始
fs
中被传递。这可能是问题的原因。在使用了fs1和wk1后,代码工作正常,,感谢帮助:)在使用fs1和wk1后,代码工作正常,,感谢帮助:)