Problemas em gerar um arquivo .txt em JAVA SERVLET

Fala galera estou com um problema
E o seguinte estou com um formulario em java servlet que tem os seguintes campos :

  • Nome
  • Endereço
  • CPF
    etc…
    Esses campos gostaria de gerar um arquivo apos usuario cadastrar os seus dados e que estes dados possam estar cotidos dentro deste arquivo.txt por exemplo.E outra duvida seria depois de gerado este arquivo como eu posso alterar estes dados tudo isso dentro do meu SERVLET
    Eu ja havia colocado um topico parecido mas ate hoje conseguir resolver este problema

http://www.guj.com.br/posts/list/22617.java

neste topico eu coloquei a ideia de reutilização do codigo que o Rafael me passou mas não coseguiu gerar arquivos com dados digitados pelo usuario
ate importei os pacotes java.io e java.nio file etc…
efetuei comando File file = new File(“caminho mas onde deseja que crie o arquivo”);
mas não foi gerado arquivo
sera alguem poderia me da uma ajuda pois quase não se utiliza isto em java quase não achei assunto ou ate mesmo indicar livros ou sites
desde ja agradeço se alguem puder uma força valeu galera

Cara mas aonde em si vc tah com o problema?Vc está tentando cria os arquivos usando NIO ao invés de IO?Lembre-se que é diferente… um exemplo:

[code]
try{
//gravando em arquivo
FileOutputStream out=new FileOutputStream(“C:\usuarioCadastrado.txt”,true);

  	     FileChannel fc=out.getChannel(); 
  	     ByteBuffer buffer=ByteBuffer.allocate(1024);
  	     
  	     buffer.put(string.getBytes());
  	     buffer.flip();
  	     
  	     fc.write(buffer);

catch(Exception e){
System.err.println(“Impossível a criacao do arquivo!!!”);
e.printStackTrace();
}

  	     [/code]

e lendo:

try{
			     FileChannel channel = new FileInputStream("C:\usuarioCadastrado.txt").getChannel();
	  	         ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY ,0, (int)channel.size());
	  	         
	  	         CharBuffer cb = Charset.forName("ISO-8859-15").newDecoder().decode(buf);                
   //faz algo do tipo anexar a uma textarea não esqueça de pegar os bytes com um cb.get para exibí-los!   	  	      
                            	     }
catch(Exception)//trata as exceções

em:

FileOutputStream("C:\usuarioCadastrado.txt",true);           

o parâmetro true permite a gravação em modo append, ou seja anexando mais users a esse arquivo criado. :wink:

Aham, você quer realmente gerar um arquivo texto? Não seria melhor usar um banco de dados? (Se é só para debugar, use o Log4J, ou outra funcionalidade de log, ou dependendo pode ser até o System.out.println, só que ele normalmente é redirecionado para algum arquivo especial, que depende do seu web container.).

Várias coisas que podem estar acontecendo:

a) Seu servlet está rodando em um web container (Tomcat? Jetty? JBoss? J2EE Reference Implementation? Sun Java System? Websphere? Weblogic?) cujas permissões Java não deixem você abrir arquivos no disco.

b) Como é que você está abrindo o arquivo? Cuidado com a barra ao contrário ("") que você deve duplicar no Java dentro de strings. Isto (“C:\temp\teste.txt”) não vai fazer o compilador reclamar, mas você vai ter um erro “FileNotFoundException” porque “\t” na verdade é um caracter de tabulação (caracter 9, ou Ctrl+I, ou Tab). Então é como se você estivesse tentando abrir um arquivo com o seguinte nome:

C:<TAB>emp<TAB>este.txt

Você precisaria usar: “C:\temp\teste.txt”

Obs: Eu sou muito folgado e uso a outra barra ("/") já que ela é aceita tanto no Windows quando no Linux/Unix. Então “C:/temp/teste.txt” é um nome válido de arquivo.