java读取xlsx the supplied file was empty (zero bytes long)
时间: 2023-09-02 19:04:16 浏览: 543
Java读取xlsx时出现“the supplied file was empty (zero bytes long)”错误是因为所提供的文件为空(长度为零字节)。
这个错误通常出现在尝试读取一个没有任何内容的文件时。在Java中读取xlsx文件需要使用到适当的库,比如Apache POI。如果使用POI库进行读取时出现该错误,可能是以下几个原因导致的:
1. 文件路径错误:请确保提供的文件路径是正确的,可以通过在终端中手动访问文件路径来验证。
2. 文件不存在:请确保提供的文件确实存在,可以通过检查文件是否存在来验证。
3. 文件损坏:如果提供的文件是损坏的,可能导致读取出错。可以尝试使用其他xlsx文件进行读取以确认是否是文件本身的问题。
4. 读取权限:请确保当前用户对文件具有读取权限。如果没有足够的权限,可能无法读取文件内容。
5. 使用合适的库:如果没有使用合适的库,也可能导致读取出错。确保使用Apache POI或其他支持xlsx读取的库进行文件读取。
如果以上方法都没有解决问题,可以尝试使用其他的工具或库来读取xlsx文件,或者检查文件是否包含其他特殊的内容或格式导致读取错误。
相关问题
报错The supplied file was empty (zero bytes long)
如果你遇到了 "The supplied file was empty (zero bytes long)" 报错,那么可能是为你提供的 Excel 文件是空或者文件内容为空。
在使用 EasyExcel 解析文件之前,建议你先检查一下文件是否存在以及文件的大小是否大于零。你可以使用以下代码片段来检查文件:
```java
import java.io.File;
public class ExcelParser {
public static void main(String[] args) {
String fileName = "path/to/your/excel/file.xlsx";
// 检查文件是否存在且大小大于零
File file = new File(fileName);
if (!file.exists() || file.length() == 0) {
System.out.println("Excel file is empty or does not exist.");
return;
}
// 继续解析 Excel 文件的代码...
}
}
```
确保替换 `path/to/your/excel/file.xlsx` 为你实际的 Excel 文件路径。此代码片段会检查文件是否存在以及文件大小是否大于零。如果文件为空或者不存在,将会打印出相应的错误消息。
java读取XLSX表格
Java 读取 XLSX 表格与读取 XLS 表格类似,也可以使用 Apache POI 库。不过需要注意的是,XLSX 是基于 XML 格式的,而 XLS 是二进制格式的,因此需要使用不同的 POI 库来处理。
以下是一个简单的读取 XLSX 表格的示例代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ReadXLSX {
public static void main(String[] args) {
String fileName = "example.xlsx"; // Excel 文件名
String sheetName = "Sheet1"; // 工作表名
try (FileInputStream inputStream = new FileInputStream(new File(fileName));
XSSFWorkbook workbook = new XSSFWorkbook(inputStream)) {
XSSFSheet sheet = workbook.getSheet(sheetName); // 获取指定的工作表
for (Row row : sheet) {
for (Cell cell : row) {
System.out.print(cell.toString() + "\t"); // 输出单元格内容
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
需要注意的是,读取 XLSX 表格需要使用 XSSFWorkbook 类,而不是 Workbook 类。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)