Java 带有字符串或InputStream的XSSFWorkbook构造函数
我有一些简单的代码,可以读取和写入excel文件。我不明白的是为什么我会 如果我使用方法1读取文件,“ZLIB输入流意外结束”,但如果我使用方法2,则没有错误。方法2读取 并写入该文件。是否有一条规则,如果您使用FileOutputStream写入文件,那么您必须使用FileInputstream读取Java 带有字符串或InputStream的XSSFWorkbook构造函数,java,apache-poi,fileinputstream,fileoutputstream,xssf,Java,Apache Poi,Fileinputstream,Fileoutputstream,Xssf,我有一些简单的代码,可以读取和写入excel文件。我不明白的是为什么我会 如果我使用方法1读取文件,“ZLIB输入流意外结束”,但如果我使用方法2,则没有错误。方法2读取 并写入该文件。是否有一条规则,如果您使用FileOutputStream写入文件,那么您必须使用FileInputstream读取 // Method1 Workbook workbook = new XSSFWorkbook("C:\\Eclipse\\WorkSpace\\YPractice\\Test
// Method1
Workbook workbook = new XSSFWorkbook("C:\\Eclipse\\WorkSpace\\YPractice\\TestCase.xlsx");
Sheet sheet = workbook.getSheet("WorkSheet2");
// Method 2
// FileInputStream file = new FileInputStream(new File("C:\\Eclipse\\WorkSpace\\YPractice\\TestCase.xlsx"));
// Workbook workbook = new XSSFWorkbook(file);
// Sheet sheet = workbook.getSheet("WorkSheet2");
int rownum = sheet.getLastRowNum() - sheet.getFirstRowNum();
System.out.println(rownum);
for(int i= 0; i<=rownum; i++)
{
Row row = sheet.getRow(i);
Cell column = row.createCell(1);
column = row.getCell(1);
column.setCellValue("Hello" + i);
System.out.println(row.getCell(0));
System.out.println(row.getCell(1));
}
FileOutputStream out = new FileOutputStream(new File("C:\\Eclipse\\WorkSpace\\YPractice\\TestCase.xlsx"));
workbook.write(out);
out.close();
//方法1
工作簿工作簿=新XSSF工作簿(“C:\\Eclipse\\WorkSpace\\YPractice\\TestCase.xlsx”);
工作表=工作簿.getSheet(“工作表2”);
//方法2
//FileInputStream文件=新的FileInputStream(新文件(“C:\\Eclipse\\WorkSpace\\YPractice\\TestCase.xlsx”);
//工作簿=新的XSSF工作簿(文件);
//工作表=工作簿.getSheet(“工作表2”);
int rownum=sheet.getLastRowNum()-sheet.getFirstRowNum();
System.out.println(rownum);
对于(int i=0;i