Pessoal é o seguinte o código de J2me abaixo é para pegar os dados do txt com InputStream e inseri-los de volta no txt com OutputStream junto com os novos dados do TextField, mas ele armazena só a primeira letra do txt e não todos os dados do txt, abaixo vai o código e um exemplo do resultado do txt.
public void commandAction(Command c, Displayable d)
{
if (c == escrevetxt)
try {
FileConnection fc = (FileConnection)
Connector.open("file://localhost/root1/teste30.txt", Connector.READ_WRITE); // PC
//Connector.open("file:///Storage Card/teste30.txt"); // Windows mobile
//Connector.open("file:////teste30.txt"); // Palm TX
OutputStream os = null;
os = fc.openDataOutputStream();
StringBuffer conteudo = new StringBuffer(toString());
InputStream is = fc.openInputStream();
byte chars, i = 0;
os.write(is.read());// coloca os dados lidos do InputStream no OutputStream
os.write("\r\n".getBytes()); // pula uma linha
os.write((tfNome.getString() +"-"+ tfFone.getString() +"-"+ sexo.getString(sexo.getSelectedIndex())).getBytes());// add informação no txt
fc.close();
System.out.println("Informação inserida no txt...");
}
catch (IOException ioe)
{
System.out.println("IOException: "+ioe.getMessage());
}
catch (SecurityException se)
{
System.out.println("Exceção de segurança:" + se.getMessage());
}
Abaixo a informação no txt antes de executar o código
andre-1491254172-Masculino
Agora abaixo a informação no txt depois da execução do código ( os dados nos TextField eram Nome: paulo, Fone: 1491257777, sexo: Masculino
a
paulo-1491257777-Masculino
Como podem ver parece que o InputStream só esta lendo a primeira letra do txt, no caso o “a” da palavra “andre” e não todos os dados dentro.
Alguém sabe o que está errado com o código?
A intenção era inserir mais dados no txt, mais na linha abaixo, a cada dado inserido grave na ultima linha disponível, e a forma q encontrei foi essa ler tudo armazenar e colocar de volta no txt concatenando as informações novas do TextField e ChoiceGroup.
Obrigado.