我正在尝试检索特定文件夹中的所有图像,为此我创建了一个矢量并将图像移动到该矢量,我使用的代码是
imageNameVector.removeAllElements();
try {
FileConnection fc = (FileConnection)Connector.open("file:///e:/Images", Connector.READ_WRITE);
if(!fc.exists())
{
fc.mkdir();
}
Enumeration filelist = fc.list("*.jpg", true);
String filename;
while(filelist.hasMoreElements()) {
filename = (String) filelist.nextElement();
imageNameVector.addElement(filename);
}
fc.close();
}
catch (IOException ioe)
{
System.out.println("IOException: "+ioe.getMessage());
}
catch (SecurityException se) {
System.out.println("SecurityException: "+se.getMessage());
}
System.out.checkError();
return imageNameVector;
}
现在我想从矢量中检索元素并将其转换为图像,
imageName = (String) imageNameVector.elementAt(1);
try{
image = Image.createImage(imageName);
}catch(Exception e){
Alert alert = new Alert("Sngjfkgnlkjf") ;
alert.setString(""+imageName+e);
display.setCurrent(alert);
}
它显示异常Abc,jpg无法读取,有人请帮我解决....
答案 0 :(得分:0)
createImage(String name)方法用于从命名资源创建映像,而不是从文件创建映像。您可以使用createImage(InputStream stream),stream = Connector.openInputStream(“file:/// e:/Images/Abc.jpg”)等。
答案 1 :(得分:0)
您无法直接访问FileSystem路径。使用下面的代码从文件系统访问加载图像
public static Image getImageFromPhone(String path) {
try {
FileConnection fconn = (FileConnection) Connector.open(path, Connector.READ);
if (!fconn.exists()) {
return null;
}
int length = (int)fconn.fileSize();
byte[] data = new byte[length];
DataInputStream din = fconn.openDataInputStream();
din.readFully(data);
fconn.close();
return Image.createImage(data, 0, data.length);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}