Abrir e ler arquivos no JAVA

6 respostas
B

Estou com uma duvida de como faço para abrir e ler um arquivo (ex: *.txt, *.html) em JAVA, sei que posso fazer isso usando o Scanner da versão 1.5 tipo: Scanner arq = new Scanner (new File(nome do arquivo)), mas não consigo aplicar isso em um programa.
Estou tentando fazer um programa assim:

*Que pergunte ao usuário o nome ou o arquivo HTML;
*Depois abra este arquivo e imprima na tela só o texto, sem as tags

Valeu a atenção…
falou

6 Respostas

J
BufferedReader br = new BufferedReader(new FileReader("c:/arquivo.html"));

while(br.ready()){
   String linha = br.readLine();
   System.out.println(linha);
}
br.close();
B

Deixei o programa assim e deu 4 erros:

import java.io.*;


public class LeArq{
	public static void main (String[]args){
		
		BufferedReader br = new BufferedReader(new FileReader("c:/arquivo.html")); 

		while(br.ready()){ 
   		String linha = br.readLine(); 
   		System.out.println(linha); 
		} 
		br.close(); 

	}
}
desculpa mas consegui entender o codigo, nunca usei o BufferedReader, usava assim:
Scanner arq = new Scaner(new File(nome do arq));
J

Tem que tratar as exceções...

import java.io.*;

public class LeArq{
   public static void main (String[]args){
      try{
      
         BufferedReader br = new BufferedReader(new FileReader("c:/arquivo.html"));

         while(br.ready()){
            String linha = br.readLine();
            System.out.println(linha);
         }
         br.close();
      }catch(IOException ioe){
         ioe.printStackTrace();
      }
   }
}
B

Perfeito o código funcionou perfeitamente:

import java.io.*; 
import javax.swing.JOptionPane;

public class LeArq{
	public static void main (String[]args){
		try{
			
			String nome;
			nome = JOptionPane.showInputDialog(null,"Entre com o nome do arquivo");
			
			BufferedReader br = new BufferedReader(new FileReader(nome));
			while(br.ready()){
				String linha = br.readLine();
				System.out.println(linha);
			}
			br.close();
		}catch(IOException ioe){
			ioe.printStackTrace();
		} 
   } 
}

só que estou tentando não imprimir as tags, só o texto fiz assim mas estou errando na logica…

String linha = br.readLine();
				for(int cont = 0; cont < linha.length(); cont++){
					
					char letra = linha.charAt(cont);

					if(letra == '<'){
					}
					
					if(letra == '>'){
						
						System.out.println(linha);
					}
					
				}

estou tentando fazer ele parar de imprimir quando tiver o char ‘<’ e voltar quando aparecer ‘>’… não querendo abusar mas já abusando teria alguma sugestão?
valeu mesmo…

lucasgarofolo

eu tenho uma tabela em HTML,
com o programa acima eu leio tudo do arquivo, não é ?

eu qeria só os valores entre as tags;

T

Tente assim

boolean isTag = true;
	    String linha = br.readLine();
     String linhaImp = "";
	    for(int cont = 0; cont < linha.length(); cont++){  
	        char letra = linha.charAt(cont);  
	  
	        if(letra == '<'){
	        	isTag = true;
	        } else if(!isTag){
	        	linhaImp += letra;
	        } 
	        
	        if(letra == '>'){
	        	isTag = false;
	        }  	   
	    }
	    System.out.println(linhaImp);
Criado 3 de maio de 2006
Ultima resposta 1 de jul. de 2011
Respostas 6
Participantes 4