Como receber o valor de um txt em uma string? (RESOLVIDO)

Pessoal preciso pegar os valores de um txt, inserir em uma variável String pra usar a mesma em uma consulta no banco de dados. Pensei em usar o FileReader mas não consigo jogar esse valor em uma String. Meu código está abaixo.

public static void main(String[] args) {
      String texto = "Jesus";  
          
      FileWriter arquivo;
      
      try {  
         arquivo = new FileWriter(new File("C:/py.txt"));
         arquivo.write(texto);  
         arquivo.close();
         FileReader ler = new FileReader("C:/py.txt");  
         
      }   catch (IOException e) {  
            e.printStackTrace();  
          }   catch (Exception e) {  
                 e.printStackTrace();  
              }  
   }

eu costumo fazer assim:

try {
			Scanner scanner = new Scanner(new File("file.txt"));
			while (scanner.hasNext()) {
				System.out.println(scanner.nextLine());
			}
			scanner.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

[quote=mauricioadl]eu costumo fazer assim:

try { Scanner scanner = new Scanner(new File("file.txt")); while (scanner.hasNext()) { System.out.println(scanner.nextLine()); } scanner.close(); } catch (IOException e) { e.printStackTrace(); } [/quote]

humm, muito bom essa :smiley:

[quote=mauricioadl]eu costumo fazer assim:

try { Scanner scanner = new Scanner(new File("file.txt")); while (scanner.hasNext()) { System.out.println(scanner.nextLine()); } scanner.close(); } catch (IOException e) { e.printStackTrace(); } [/quote]

Pelo que entendi voce criou um arquivo file.txt e imprimiu o conteúdo do mesmo. Eu preciso jogar o conteúdo do txt em uma String porque os dados do txt vão ser usados como parâmetro para uma consultado no mysql.

no meu exemplo eu nao crio o file.txt eu dei ele como ja criado, caso ele nao existe ele vai criar mais ae eh outra historia, se ele ja existir vai ser lido e impresso todas as linhas. entendeu?

[quote=Pedro Ribeiro][quote=mauricioadl]eu costumo fazer assim:

try { Scanner scanner = new Scanner(new File("file.txt")); while (scanner.hasNext()) { System.out.println(scanner.nextLine()); } scanner.close(); } catch (IOException e) { e.printStackTrace(); } [/quote]

Pelo que entendi voce criou um arquivo file.txt e imprimiu o conteúdo do mesmo. Eu preciso jogar o conteúdo do txt em uma String porque os dados do txt vão ser usados como parâmetro para uma consultado no mysql.[/quote]

não cara ele não fez isso ele está pegando o valor que esta contido no arquivo file.txt e "printando"oque voc~e pode fazer é o seguinte depositar o valor que ele está “printando” em um String exemplo:

try {
			Scanner scanner = new Scanner(new File("C:/file.txt"));
			while (scanner.hasNext()) {
            String teste = scanner.nextLine();				
          System.out.println(teste);
			}
			scanner.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

uma duvida mauricio.
porque ele não pega os valores do .txt se tiver acento???

acho q isso que vc quer fazer fica melhor se vc usar arquivo properties, fica muito mais legivel e facil de usar, veja o exemplo:

suponha que vc tenha um arquivo com o nome de query.properties e nele vc tem as linhas

consulta_cliente=SELECT * FROM clientes
consulta_produto=SELECT * FROM produto

pra vc pegar essas selects vc faz assim:

Properties properties = new Properties();
FileInputStream fis = new FileInputStream(new File("query.properties"));
properties.load(fis);

String query_cliente = properties.getProperty("consulta_cliente");

bem melhor, da pra vc fazer um singleton do arquivo properties com todas as querys que vc quiser

[quote=JoatanGuj]uma duvida mauricio.
porque ele não pega os valores do .txt se tiver acento???[/quote]

cara, no meu pega palavras com acento numa boa. que SO vc usa?

[quote=mauricioadl][quote=JoatanGuj]uma duvida mauricio.
porque ele não pega os valores do .txt se tiver acento???[/quote]

cara, no meu pega palavras com acento numa boa. que SO vc usa?[/quote]

Neste momento to no Win 7, mas normalmente fico no linux.

estranho! pode ser o tipo de arquivo que vc criou eu usei o proprio eclipse para criar. tenta criar um arquivo basicao com o bloco de notas e testa pra ver.

se for criando pelo Bloco de notas não da mais se eu criar um arquivo pelo Eclipse ou netbeans ele vai LOL

tenso!

deve ser por causa do formato que é criado, aqueles negocio de UTF e ISO9000 sei lá oq.

xd

tenso!²

o java trabalha com UTF-8…
se você usou o notepad para criar o .txt tem que ‘salvar como…’ UTF-8…

[quote=fernandosavio]o java trabalha com UTF-8…
se você usou o notepad para criar o .txt tem que ‘salvar como…’ UTF-8…[/quote]

muito boa a informação ^^

[quote=fernandosavio]o java trabalha com UTF-8…
se você usou o notepad para criar o .txt tem que ‘salvar como…’ UTF-8…[/quote]

Errado. Os caracteres em Java são codificados em UTF-16, mas você pode ler/escrever arquivos a partir de qualquer encoding.

   String encoding = "UTF-8"; //poderia ser ISO-8859-1, CP-1252, etc.

   Reader reader = new InputStreamReader(new FileInputStream("C:\\meuArquivo.txt", encoding)

Com esse código, você lê um arquivo em UTF-8 normalmente.

[quote=rmendes08][quote=fernandosavio]o java trabalha com UTF-8…
se você usou o notepad para criar o .txt tem que ‘salvar como…’ UTF-8…[/quote]

Errado. Os caracteres em Java são codificados em UTF-16, mas você pode ler/escrever arquivos a partir de qualquer encoding.

   String encoding = "UTF-8"; //poderia ser ISO-8859-1, Cp-1512, etc.

   Reader reader = new InputStreamReader(new FileInputStream("C:\\meuArquivo.txt", encoding)

Com esse código, você lê um arquivo em UTF-8 normalmente.[/quote]

quanto a um ANSI?

US-ASCII

Desculpem me pela informação errada…
Me precipitei, a única coisa que eu sabia ao certo é que o Java reconhecia caracteres de 2 bytes…
Ainda bem que o rmendes08 está aí para ajudar!
Foi mal!

[quote=fernandosavio]Desculpem me pela informação errada…
Me precipitei, a única coisa que eu sabia ao certo é que o Java reconhecia caracteres de 2 bytes…
Ainda bem que o rmendes08 está aí para ajudar!
Foi mal![/quote]

não tem nada demais errar não, só está livre de erros que não tenta e quem não dá a cara a tapa! Estamos aí pra aprender, todos!