[RESOLVIDO] Ajuda para escrever Strings [RESOLVIDO]
8 respostas
oddy.silva
Gostaria de saber como poderia escrever String para um objeto.
Estou trabalhando num projeto, e até agora eu sempre escrevi
as Strings em arquivos, conforme o exmplo abaixo:
OutputStreamWriter osw = new FileWriter("/home/dir/arquivo");
osw.write("Escrever este conteudo");
osw.close();
Pois bem, preciso escrever este conteudo em objeto, ou alguma coisa
que tenha a ver com a classe OutputStream, e não num arquivo de texto.
Alguém tem idéia de como eu posso fazer isso? Abraço.
Você pode usar um DataOutputStream (método writeUTF) ou um ObjectOutputStream (método writeObject).
Depende do que você quer escrever, e qual o formato desejado.
Pode ser até que você tenha de converter a string para um byte[] e usar RandomAccessFile.
oddy.silva
thingol, você pode dar um exemplo do DataOutputStream?
Segue um exemplo de ObjectOutputStream. é uma boa forma para gravar os objetos em seu estado atual.
Clienteobj=newCliente();obj.setNome("Nome do Cliente");//FileOutputStream para gravar o arquivoFileOutputStreamfileOut=null;ObjectOutputStreamobjStream=null;try{//Cria o arquivofileOut=newFileOutputStream("nome do arquivo");objStream=newObjectOutputStream(fileOut);//Grava o objetoobjStream.writeObject(obj);//Fecha o arquivoobjStream.flush();objStream.close();fileOut.flush();fileOut.close();}catch(FileNotFoundExceptione){System.out.println("Arquivo não encontrado!");System.exit(0);}catch(IOExceptione){System.out.println("Problemas na gravação do objeto!");System.exit(0);}System.out.println("Objeto Gravado com sucesso!");
Lembrando que classe cliente deve implementar a interface Serializable.
oddy.silva
tnhingol, no seu exemplo eu ainda continuo a gerar um arquivo. Eu gostaria mesmo é de guardar as informacoes da String em um outro lugar, que não seja um arquivo gerando no hd, e nem em uma string buffer.
Eu gostaria, por exemplo, de escrever essa string num arquivo que ficasse na memória volátil, e não em uma memória secundária(HD);
por exemplo, sei que não existe, mas podeira ser:
FileWriter fw = new FileWriter(File(posicaoDaMemoriaTal).
fw.write(MeuConteudoNaMemoria); //Armazena o conteúdo temporariamente
fw.close();
Não sei se deu pra entender, mas é basicamente isso o que preciso. Desde já agradeço a ajudad e todos até aqui. Quem tiver alguma dica, agradeço!
T
thingol
Ah, quem não se explica direito não tem a resposta certa. Use um ByteArrayOutputStream / ByteArrayOutputStream: