Ola!, alguém saberia me dizer como faço para que cada dado inserido no txt seja inserido em uma nova linha?
Obrigado.
Ola!, alguém saberia me dizer como faço para que cada dado inserido no txt seja inserido em uma nova linha?
Obrigado.
Faça uso do método writeLine() da classe BufferedWriter. A cada linha inserida, ele pula uma linha dentro do arquivo texto.
É algo parecido com o código abaixo:
public void gravarEmArquivoTexto(String caminhoArquivo, List<String> linhas) throws IOException {
FileWriter fileWriter = new FileWriter(new File(caminhoArquivo));
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
for (String linha : linhas) {
bufferedWriter.writeLine(linha);
}
bufferedWriter.close();
fileWriter.close();
}
Abraços!
Dai vai depender de qual classe você está usando para manipular a criação do txt. Da uma olhada nesse tutorial:manipulando-arquivo-txt-com-java
Bom, com essas informações já da pra tentar algo!, assim que tiver o resultado vou postar aqui para vcs!
valeu!
Pessoal, estou queimando a cabeça pra resolver isso, mais oque eu esqueci de avisa-los é que a programação é para J2ME, fiz o código que salva os dados do TextField, DateField… etc, tudo certinho, ela grava na primeira linha no txt, mas nas próximas inclusões ele salva em cima dos dados da primeira linha, como poderia fazer pra fazer que sempre inclua uma linha nova para salvar os dados ou salve de baixo pra cima, ou algum esquema de StringBuffer.
Vai o meu código abaixo para facilitar.
abraço
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 is = fc.openDataOutputStream();
Date sysdate = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(this.Datahora.getDate());
is.write(new String("\r\n"+tfNome.getString() +"-"+ tfFone.getString() +"-"+ sexo.getString(sexo.getSelectedIndex())).getBytes());
is.write(new String("-").getBytes());
is.write(new String (String.valueOf(cal.get(Calendar.DAY_OF_MONTH)) +"/"+ String.valueOf(cal.get(Calendar.MONTH)+1) +"/"+ String.valueOf(cal.get(Calendar.YEAR))).getBytes());
is.write(new String("-").getBytes());
is.write(new String(String.valueOf(cal.get(Calendar.HOUR_OF_DAY)) +":"+ String.valueOf(cal.get(Calendar.MINUTE)) +":"+ String.valueOf(cal.get(Calendar.SECOND))).getBytes());
fc.close();
Crie um FileWriter, é nele que se define o modo incremental de escrita em um arquivo.
Veja o exemplo:
FileWriter fileWriter = null;
PrintWriter writer = null;
try {
// Cria uma instância que referencia um arquivo.
File file = new File("Arquivo.txt");
// Cria um writer para um arquivo com modo incremental ligado.
fileWriter = new FileWriter(file, true);
// cria um writer mais amigável para escrita.
writer = new PrintWriter(fileWriter);
// Escreve o texto passado como parâmetro e quebra a linha.
writer.println("Linha 1");
} catch (IOException ex) {
} finally {
// liberando recursos
try {
writer.close();
fileWriter.close();
} catch (IOException ex) {
System.err.println("fileWriter.close() lançou uma exceção: " + ex.getMessage());
}
}
Eu só recomendo adicionar a seguinte verificação no bloco finally:
} finally {
// liberando recursos
try {
if(null != writer)
writer.close();
if(null != fileWriter)
fileWriter.close();
} catch (IOException ex) {
System.err.println("fileWriter.close() lançou uma exceção: " + ex.getMessage());
}
}
Evitar um possível NullPointerException.
Sim, mas em J2ME aceita FileWriter?
Cara, nunca programei em J2ME, mas não vejo porque não aceitaria uma API da IO nativa do Java.
Você já tentou por acaso?
o nel tem razão!
código corrigido:
FileWriter fileWriter = null;
PrintWriter writer = null;
try {
// Cria uma instância que referencia um arquivo.
File file = new File("Arquivo.txt");
// Cria um writer para um arquivo com modo incremental ligado.
fileWriter = new FileWriter(file, true);
// cria um writer mais amigável para escrita.
writer = new PrintWriter(fileWriter);
// Escreve o texto passado como parâmetro e quebra a linha.
writer.println("Linha 1");
} catch (IOException ex) {
System.err.println("o construtor \"FileWriter(file, true)\" lançou uma exceção: " + ex.getMessage());
} finally {
// liberando recursos
try {
if (writer != null) {
writer.close();
}
if (fileWriter != null) {
fileWriter.close();
}
} catch (IOException ex) {
System.err.println("O método \"fileWriter.close()\" lançou uma exceção: " + ex.getMessage());
}
}
em J2ME dentro de IO não tenho o FileWrite olhe abaixo na imagem o que tenho dentro de IO
http://imageshack.us/photo/my-images/10/97261102.jpg/
como sera que se faz em J2ME?
num manjo de j2me, vê se isso te ajuda.
http://developers.sun.com/mobility/apis/ttips/fileconnection/