在代号一中,为什么我不能让 FileInputStream 导入或编译?

In Codename One, why can I not get FileInputStream to import or compile?

这是我的进口商品:

import com.codename1.ui.*;
import com.codename1.ui.util.*;
import com.codename1.ui.plaf.*;
import com.codename1.ui.events.*;
import com.codename1.io.*;
import com.codename1.ui.layouts.*;
import java.io.*;

我无法编译此代码:

InputStream in = new FileInputStream("users.csv");

这是错误:

C:\Users\Isaac\Documents\NetBeansProjects\CodenameOne_TESTING\src\com\fakecompany\testapp\MyApplication.java:119: error: cannot find symbol
    InputStream in = new FileInputStream("users.csv");
  symbol:   class FileInputStream
  location: class MyApplication

我认为这可能是导入的问题,果然,当我专门导入时 java.io.FileImputStream 它给了我一个额外的错误:

C:\Users\Isaac\Documents\NetBeansProjects\CodenameOne_TESTING\src\com\fakecompany\testapp\MyApplication.java:13: error: cannot find symbol
import java.io.FileInputStream;
  symbol:   class FileInputStream
  location: package java.io

这是怎么回事?我应该用其他方式在代号一中导入文件吗?如果我的代码不足以找到错误,请告诉我。

PS:我需要实现输入流以便解析 csv 文件:

    CSVParser parser = new CSVParser();
    String[][] data = parser.parse(in);

看起来代号一省略了 class - 我怀疑还有其他人。

根据文档判断,我怀疑您想使用 com.codename1.io.FileSystemStorage class and its openInputStream 方法。

您可能也想观看 video on storing data to persistent storage

乔恩的回答是正确的,但不完整。问题是 CSV 文件实际存储在哪里...

如果文件在 src 文件夹(jar 的一部分)中,请使用 Display.getInstance().getResourceAsStream(getClass(), "/filename");

如果您下载了它,那么您很可能已将其下载到存储而不一定是文件系统(在移动设备中略有不同)。两者都有相当详细的 API 到 open/write 并且 Util class 有一个很好的下载 API。请记住,您不能像在计算机中那样只是 "put" 设备上的文件,文件系统是完全不同的。

作为旁注,Codename One 有一个内置的 CSVParser class 可能对你有用。