Kos*_*nso 1 java eclipse excel android android-emulator
我的资产文件夹中有一个xls文件,我想用jexcelapi库打开它.我已经将文件的路径设置为("file:///android_asset/jxlrwtest.xls"),甚至尝试使用New-> File在我的根文件夹中创建一个具有不同名称的xls文件并直接访问它但仍然是我每次运行模拟器时都会收到错误java.io.FileNotFoundException"(没有这样的文件或目录)".我还确保每次尝试移动文件时都刷新路径.我读完excel文件的全班都是
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();
}
}
Run Code Online (Sandbox Code Playgroud)
而我一直得到的错误是
12-30 01:36:59.386:W/System.err(1851):java.io.FileNotFoundException:file:/android_asset/jxlrwtest.xls:open failed:ENOENT(没有这样的文件或目录)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 androi d.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):在android.widget.AbsListView $ 3.run(AbsListView.java:3833)12-30 01:36:59.416:W/System.err(1851) :在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):在android.os.Looper.loop(Looper.java:135)12-30 01:36:59.432:W/System.err(1851):在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):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:899)12-30 01:36:59.433:W/System.err(1851):at com.andr oid.internal.os.ZygoteInit.main(ZygoteInit.java:694)12-30 01:36:59.433:W/System.err(1851):引起:android.system.ErrnoException:open failed:ENOENT(没有这样的文件或目录)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) ):在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个
请帮助,因为我不想使用外部SD卡文件,我已经被困在这里一段时间.
您只能将file:/// android_asset/someName用作WebView的URL.它不是文件系统识别的文件名.
使用Context.getAssets获取AssetManger实例,并使用AssetManager.open获取资产文件的InputStream.
如果需要提供File实例,请将资产中的文件复制到应用程序的私有目录中.
| 归档时间: |
|
| 查看次数: |
2336 次 |
| 最近记录: |