Ler e escrever em arquivo de Texto

9 respostas
A

Estou usando FileWrite para escrever em um arquivo de texto, mas tenho o seguinte problema. Como eu estou salvando como XML tenho que respeitar a tag final que no meu caso é . Resumindo, eu tenho que ler e achar a tag e escrever antes. Como eu faço para ler??

9 Respostas

Mantu

Já tentou utilizar o FileReader em conjunto com o BufferedReader?

public static String getFileContentAsText(File file) throws IOException {
		if(file == null || !file.exists() || !file.isFile())
			throw new FileNotFoundException(file.getAbsolutePath());
		
		FileReader fr = null;
		BufferedReader br = null;
		StringBuffer sb = new StringBuffer("");
		
		fr = new FileReader(file);
		br = new BufferedReader(fr);
		
		try {
			for(String line = br.readLine(); line != null; line = br.readLine()) {
				sb.append(line + "\n");
			}
		} catch (IOException e) {
			throw new IOException("Can't read the file: " + e.getCause());
		}
		
		br.close();
		fr.close();

		return sb.toString();
	};
Luiz-SP

Pq ao invés de ler e escrever o XML na “raça” vc num usa o JDOM

http://www.jdom.org/

A

Valeu pelas respostas!! Vou dar uma olhada nos dois e coloco aqui os resultados.

A

Consegui fazer ele ler, mas minha dúvida é como eu faço a comparação pelo if??? Seria com o método equals??

Mantu

Vc quer comparar um arquivo com o outro? é isso?

A

Em um arquivo xml tenho que achar a tag e inserir antes dela. Então eu queria ler o arquivo e através de um if comparar e inserir o texto.

E

Eu gostaria de saber como posso fazer ler um arquivo texto e colocar a saida dele para uma página jsp?

Mantu

Pra fazer isso, a melhor alternativa é a dica do LuizClaudio. Dê uma estudada naquele link que ele passou.
Pra fazer por if, de qq forma, vc pode usar o método indexOf(String) da classe String, que te retorna a posição onde é encontrado, no String que invoca esse método, o String que foi passado por parâmetro. Por exemplo:

String code = "<bla><bleh>ono no</bleh></bla>";
System.out.println(code.indexOf("</bleh>"));
System.out.println(code.indexOf("<bla>"));
System.out.println(code.indexOf("<foo>"));

Isso aí em cima, se executado, vai mostrar na tela:

17
0
-1

o -1 indica que não foi achado o String passado por parâmetro.
Mas acho que seja melhor vc usar o JDOM

A

O projeto está pronto. As pesquisas e a leitura do xml está ok, só falta salvar. Se for usar JDOM tenho que mudar tudo ou não.

Criado 16 de outubro de 2006
Ultima resposta 19 de out. de 2006
Respostas 9
Participantes 4