我有以下代码:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.io.*;
public class FileConnection extends MIDlet implements CommandListener, Runnable {
private Command exit, start;
private Display display;
private Form form;
public FileConnection ()
{
display = Display.getDisplay(this);
exit = new Command("Exit", Command.EXIT, 1);
start = new Command("Start", Command.EXIT, 1);
form = new Form("Write To File");
form.addCommand(exit);
form.addCommand(start);
form.setCommandListener(this);
}
public void startApp() throws MIDletStateChangeException
{
display.setCurrent(form);
}
public void run(){
try{
javax.microedition.io.file.FileConnection filecon =
(javax.microedition.io.file.FileConnection)
Connector.open("file:///root1/photos/fisier.txt", Connector.WRITE);
OutputStream out = filecon.openOutputStream();
PrintStream output = new PrintStream( out );
output.println( "This is a test." );
out.close();
filecon.close();
Alert alert = new Alert("Completed", "Data Written", null, null);
alert.setTimeout(Alert.FOREVER);
alert.setType(AlertType.ERROR);
display.setCurrent(alert);
}
catch( ConnectionNotFoundException error )
{
Alert alert = new Alert(
"Error", "Cannot access file.", null, null);
alert.setTimeout(Alert.FOREVER);
alert.setType(AlertType.ERROR);
display.setCurrent(alert);
}
catch( IOException error )
{
Alert alert = new Alert("Error", error.toString(), null, null);
alert.setTimeout(Alert.FOREVER);
alert.setType(AlertType.ERROR);
display.setCurrent(alert);
}
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
public void commandAction(Command command, Displayable displayable)
{
if (command == exit)
{
destroyApp(false);
notifyDestroyed();
}
else if (command == start)
{
new Thread(this).start();
}
}
}
正如您所看到的,我正在尝试从模拟器中在文本文件中编写内容。我在一个单独的线程中运行该代码,以避免在运行时发出警告。我在C:\ Program Files \ WTK2.5.2_01 \ j2mewtk_template \ appdb \ DefaultColorPhone \ filesystem \ root1 \ photos一个名为fisier.txt的文件。当我尝试运行此代码并按“开始”时,我在问题'J2ME'中点击'是',Midlet Suite想要编写本地文件系统。可以更新文件吗?是/否”。我进入了屏幕 java.io.IOException:,仅此而已!...
怎么了?为什么我收到了这个错误?我没有找到工作代码的任何地方,如何写入本地.txt文件 不知道我的代码有什么问题吗?
答案 0 :(得分:1)
可能是错误的路径(和文件不存在),你没有写入权限,在其他地方打开它。
您是否尝试过调用FileConnection
课程提供的某些方法,例如canWrite()
,exists()
和isOpen()
,以了解这些常见问题是否适用在你的情况下?