Definição
Muitos aparelhos permitem criar arquivos texto na memória. Para isso verifique se o Java do seu celular suporta o JSR 75 (geralmente nas características técnicas fala sobre isso).
O exemplo abaixo foi testado no emulador do Nokia S40 e no aparelho físico Nokia 6060
Tela

Fonte
import java.io.IOException;
import java.io.OutputStream;
import javax.microedition.io.ConnectionNotFoundException;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Principal extends MIDlet implements CommandListener {
private Form form;
private Display display;
private TextField nomeField;
private Command salvarCommand;
public Principal() {
// captura o display
display = Display.getDisplay(this);
form = new Form("Título");
salvarCommand = new Command("Salvar", Command.SCREEN, 0);
nomeField = new TextField("Nome:" , "", 20, TextField.ANY);
// coloca tudo no form
form.addCommand(salvarCommand);
form.append(nomeField);
form.setCommandListener(this);
// ativa o form
display.setCurrent(form);
}
public void commandAction(Command command, Displayable displayable) {
if (command == salvarCommand) {
if (salvarArquivoTexto()) {
Alert alerta = new Alert("Atenção", "Arquivo salvo!", null, AlertType.INFO);
display.setCurrent(alerta);
}
}
}
public boolean salvarArquivoTexto() {
boolean result = false;
String filename = "file:///c:/predefgallery/predefphotos/Nokia.txt";
try {
byte[] data;
String s;
OutputStream outputStream;
FileConnection fileConnection = (FileConnection) Connector.open(filename); //, Connector.READ_WRITE);
if (fileConnection.exists()) {
outputStream = fileConnection.openOutputStream(fileConnection.fileSize()); // append
} else {
fileConnection.create();
outputStream = fileConnection.openOutputStream();
}
data = nomeField.getString().getBytes();
outputStream.write(data);
outputStream.close();
fileConnection.close();
// exibe que deu tudo certo...
Alert alert = new Alert("Completo!", "Nome gravado no txt", null, null);
alert.setTimeout(Alert.FOREVER);
alert.setType(AlertType.CONFIRMATION);
display.setCurrent(alert);
// retorna verdadeiro
result = true;
} catch (ConnectionNotFoundException error) {
Alert alert = new Alert("Erro!", "Não acesso o arquivo.", null, null);
display.setCurrent(alert);
} catch(IOException error) {
Alert alert = new Alert("Erro!", error.toString(), null, null);
display.setCurrent(alert);
}
return result;
}
public void startApp() { }
public void pauseApp() { }
public void destroyApp(boolean unconditional) { notifyDestroyed(); }
}