gpt4 book ai didi

java - Assets 文件目录给出 java.io.FileNotFoundException eclipse

转载 作者:行者123 更新时间:2023-11-29 07:36:58 30 4
gpt4 key购买 nike

我的 Assets 文件夹中有一个 xls 文件,我想使用 jexcelapi 库打开它。我已将文件的路径设置为(“file:///android_asset/jxlrwtest.xls”),甚至尝试使用 New-> File 在我的根文件夹中创建一个具有不同名称的 xls 文件并直接访问它,但我仍然每次运行模拟器时都会收到错误 java.io.FileNotFoundException“(没有这样的文件或目录)”。我还确保每次尝试移动文件时都刷新路径。我阅读 excel 文件的整个类(class)是

package com.example.kirikedictionary;

import java.io.File;
import java.io.IOException;

import android.app.Activity;
import android.content.Context;

import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class ReadExcel {

private String inputFile;
protected Context context;

public ReadExcel(Context context){
this.context = context.getApplicationContext();
}


public void setInputFile(String inputFile) {
this.inputFile = inputFile;
}

public void read() throws IOException {
File inputWorkbook = new File(inputFile);
Workbook w;
try {
w = Workbook.getWorkbook(inputWorkbook);
// Get the first sheet
Sheet sheet = w.getSheet(0);
// Loop over first 10 column and lines

for (int j = 0; j < sheet.getColumns(); j++) {
for (int i = 0; i < sheet.getRows(); i++) {
Cell cell = sheet.getCell(j, i);
CellType type = cell.getType();
if (type == CellType.LABEL) {
System.out.println("I got a label "
+ cell.getContents());
}

if (type == CellType.NUMBER) {
System.out.println("I got a number "
+ cell.getContents());
}

}
}
} catch (BiffException e) {
e.printStackTrace();
}
}

public void main(String[] args) throws IOException {
ReadExcel test = new ReadExcel(context);
test.setInputFile("file:///android_asset/jxlrwtest.xls");
test.read();
}

}

我不断得到的错误是

12-30 01:36:59.386: W/System.err(1851): java.io.FileNotFoundException: file:/android_asset/jxlrwtest.xls: open failed: ENOENT (No such file or directory) 12-30 01:36:59.393: W/System.err(1851): at libcore.io.IoBridge.open(IoBridge.java:456) 12-30 01:36:59.393: W/System.err(1851): at java.io.FileInputStream.(FileInputStream.java:76) 12-30 01:36:59.394: W/System.err(1851): at jxl.Workbook.getWorkbook(Workbook.java:213) 12-30 01:36:59.394: W/System.err(1851): at jxl.Workbook.getWorkbook(Workbook.java:198) 12-30 01:36:59.394: W/System.err(1851): at com.example.kirikedictionary.ReadExcel.read(ReadExcel.java:33) 12-30 01:36:59.394: W/System.err(1851): at com.example.kirikedictionary.ReadExcel.main(ReadExcel.java:62) 12-30 01:36:59.394: W/System.err(1851): at com.example.kirikedictionary.MainActivity$3.onItemClick(MainActivity.java:148) 12-30 01:36:59.394: W/System.err(1851): at android.widget.AdapterView.performItemClick(AdapterView.java:300) 12-30 01:36:59.395: W/System.err(1851): at android.widget.AbsListView.performItemClick(AbsListView.java:1143) 12-30 01:36:59.416: W/System.err(1851): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3044) 12-30 01:36:59.416: W/System.err(1851): at android.widget.AbsListView$3.run(AbsListView.java:3833) 12-30 01:36:59.416: W/System.err(1851): at android.os.Handler.handleCallback(Handler.java:739) 12-30 01:36:59.417: W/System.err(1851): at android.os.Handler.dispatchMessage(Handler.java:95) 12-30 01:36:59.432: W/System.err(1851): at android.os.Looper.loop(Looper.java:135) 12-30 01:36:59.432: W/System.err(1851): at android.app.ActivityThread.main(ActivityThread.java:5221) 12-30 01:36:59.432: W/System.err(1851): at java.lang.reflect.Method.invoke(Native Method) 12-30 01:36:59.432: W/System.err(1851): at java.lang.reflect.Method.invoke(Method.java:372) 12-30 01:36:59.433: W/System.err(1851): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 12-30 01:36:59.433: W/System.err(1851): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 12-30 01:36:59.433: W/System.err(1851): Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory) 12-30 01:36:59.434: W/System.err(1851): at libcore.io.Posix.open(Native Method) 12-30 01:36:59.435: W/System.err(1851): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186) 12-30 01:36:59.451: W/System.err(1851): at libcore.io.IoBridge.open(IoBridge.java:442) 12-30 01:36:59.452: W/System.err(1851): ... 18 more

请帮忙,因为我不想使用外部 SD 卡文件,而且我已经被困在这里一段时间了。

最佳答案

您只能将 file:///android_asset/someName 用作 WebView 的 URL。它不是文件系统识别的文件名。

使用Context.getAssets获取 AssetManger 实例,并使用 AssetManager.open获取 Assets 文件的 InputStream。

如果您需要提供一个 File 实例,请将文件从 assets 复制到应用的私有(private)目录中。

关于java - Assets 文件目录给出 java.io.FileNotFoundException eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34521349/

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