Trabalhando com arquivo txt

26 respostas
R

Oi galera. :grin:

Eu to voltando a programar em Java depois de um bom tempo parado, e por isso eu estou com muitas duvidas. E pra piorar, tenho que fazer um analisador léxico…resumindo… 8O

Eu já tenho idéia da estrutura que eu vo usa pra fazer o analisador, so me falta relembrar o Java e alguns de seus comandos.

O que eu quero saber é:

1° como que eu leio um arquivo .txt?
2° como que eu leio char por char de um arquivo .txt?

acho que inicialmente so isso já me ajuda. Assim que eu sair do zero eu vo postando o código aqui.

Valew pela ajuda galera. :wink:

26 Respostas

C

Amigos do Portal tenho um problema em minhas mãos … tenho que gerar um txt para que o dataflex possa ler as informações contida no mesmo vcs sabem como posso fazer essa proeza

R
O que eu quero saber é:

1° como que eu leio um arquivo .txt?
2° como que eu leio char por char de um arquivo .txt?

... um exemplo aí ...
import java.io.*;

public class ExArquivo{
	public static void main(String[] args){
		File f = new File("C:/dados.txt");

		try{
			FileReader fr = new FileReader(f);
			int letra = 0;
			letra = fr.read();
			while(letra!=-1){
				char letraChar = (char)letra;
				System.out.println(letraChar);
				letra = fr.read();
			}
		}catch(FileNotFoundException fe){
			System.out.println("Arquivo nao encontrado");
		}catch(IOException ie){
			System.out.println("Falha na leitura");
		}
	}
}
D
import java.io.*; 

public class ExArquivo{ 
   public static void main(String[] args){ 
      File f = new File("C:/dados.txt"); 

      try{ 
         FileReader fr = new FileReader(f); 
         int letra = 0; 
         letra = fr.read(); 
         while(letra!=-1){ 
            char letraChar = (char)letra; 
            System.out.println(letraChar); 
            letra = fr.read(); 
         } 
      }catch(FileNotFoundException fe){ 
         System.out.println("Arquivo nao encontrado"); 
      }catch(IOException ie){ 
         System.out.println("Falha na leitura"); 
      } 
   } 
}
File f = new File("C:/dados.txt");
esta linha de codigo esta mostrando aonde seu arquivo "dados.txt" deve estar salvo.
FileReader fr = new FileReader(f); 
int letra = 0; 
letra = fr.read(); 
while(letra!=-1){ 
char letraChar = (char)letra; 
System.out.println(letraChar); 
letra = fr.read();

Aqui ele faz a leitura do conteúdo que estiver armazenado no "dados.txt" caracterer por caracter.

catch(FileNotFoundException fe){ 
         System.out.println("Arquivo nao encontrado"); 
}
Aqui ele gera uma Exception caso ele nao consiga achar o arquivo, normalmente quando o nome esta diferente ou nao existe.
catch(IOException ie){ 
         System.out.println("Falha na leitura"); 
      }

Esse gera uma Exception caso aconteça algum erro na leitura do conteúdo

blz?!

Vlw!!

R

putz cara, valew mesmo! mas eu tenho algumas duvidas.

não saquei a utilidade desse comando?
char letraChar = (char)letra;

e nem por que a estrutura “while” vai ate -1.

otra coisa tambem, quando eu leio char por char eu tambem leio \n \r e coisas do tipo né?

R

casting … pois letra é int

qdo retornar -1, é por que chegou no fim do stream

R

como que eu crio um arquivo e escrevo nele?

R

Ao invés de tu usar objeto “FileReader” tu usa “FileWriter” e o método write() dele. As outras estruturas são parecidas.

R

eu procurei na net e fiz algo que não funcino!

FileWriter saida = new FileWriter(new File(“C:\temp.txt”),true);
saida.println(“Camera’s ready,”);

o que que estaria errado nesse meu codigo?

R
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class Arquivos
{	
	public Arquivos()
	{
		escreveArquivo("d:\arquivo.txt", "Texto que vai ser escrito!!!");
	}
	
	private void escreveArquivo(String nomeArquivo, String texto)
	{
		File file = new File(nomeArquivo);
		try
		{
			FileWriter writer = new FileWriter(file);
			writer.write(texto);
			writer.close();
		}
		catch (IOException e) 
		{
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) 
	{
		new Arquivos();
	}
}

Acho que essa classe resolve teu problema!

R

eu estou com um problema neste metodo:

public string verificaId(string palavra){

if("comeco" == compara(palavra))
			return "abre_bloco";
	else if("final" == compara(palavra))
 			return "fecha_bloco";
	else if( palavraReservada(compara(palavra)) )
			return "palavra_reservada";
	else if(";" == compara(palavra))
 			return "separador_comando";
	else if( "(" == palavra)
 			return "abre_parenteses";
	else if( ")" == palavra)
 			return "fecha_parenteses";
	else if( "=" == palavra)
 			return "operador_atribuicao";
	else if( validaOperador(palavra) )
			return "operador";
	else if( !validaOperadorDuplo(palavra) )	
			return "operador";
	else if( palavraValida($palavra) )
			return "variavel";			
	else if( palavraInt($palavra) )
			return "numero";		
	else if ( (palavra != "") && (palavra != '\r') && (palavra != '\b') && (palavra != '\f') && (palavra != '\t') && (palavra != '\v') && (palavra != '\n'))	
			return "erro";	
}

o erro que esta dando é no string, esta dizend :“class string not found in type declaration or import”

o que é isso?eu tenho que importar algo pra usar string?

R

estou com problemas para comparar 2 strings!!alguem tem algum exemplo pra me ajudar?

R

teria tambem como alguem me passar um exemplo ridiculo de array?

algo bem simples, so criar um e atribuir valores as 3 primeiras posições.

R

Para comparar Strings você usa o método equals() do objeto String

Exemplo:

String s1 = "Hello";
String s2 = "World";

if(s1.equals(s2))
   System.out.println("Strings iguais!");
else
   System.out.println("Strings diferentes!");

Com relação aso Arrays:

String[] arrayString = new String[3];

arrayString[0] = "Posição 0";
arrayString[1] = "Posição 1";
arrayString[2] = "Posição 2";

Espero ter ajudado

R

como eu estou pegando char por char do arquivo texto, em alguns momentos eu estou tentando saber se o char esta vazio. mas o meu programa não esta funcionando.

while(letra!=-1){

char letraChar = (char)letra;

if( letraChar == " " )

ta2.setText(ta2.getText() + ‘\n’);

else

ta2.setText(ta2.getText() + letraChar);

<a href="//System.out.println">//System.out.println</a>(letraChar);

letra = fr.read();

}

so que no “if” esta ocorrendo um erro. alguem sabe me dizer o que pode ser?

R

Cara, é porque tu tá usando aspas duplas. Tu tem que usar aspas simples. Duplas é pra String, simples pra char

R

¬¬

R

Olha so galera, como eu estou voltando a programar em java, eu estou com alguns problemas.

Eu estou querendo usar uma function que me retorne true ou false , so que eu não estou sabendo implementar isso.

Eu estou lendo um arquivo texto char por char, e a cada char, eu quero chamar uma função para fazer os devidos testes nesse char, mas eu não sei como fazer iss. Será que alguém pode me passar um exemplo simples de um programa que lê um char do arquivo texto, e chama uma função para verificar se ele é letra ou numero?

R

taí ...

public class NumeroOuLetra{
	public static boolean validaChar(char valor){
		if(Character.isDigit(valor)){
			return true;
		}else{
			return false;
		}
	}

	public static void main(String[] args){
		System.out.println(validaChar('7')==true?"Numero":"Letra");
		System.out.println(validaChar('G')==true?"Numero":"Letra");
		System.out.println(validaChar('6')==true?"Numero":"Letra");
		System.out.println(validaChar('J')==true?"Numero":"Letra");
		System.out.println(validaChar('p')==true?"Numero":"Letra");
		System.out.println(validaChar('3')==true?"Numero":"Letra");
		System.out.println(validaChar('2')==true?"Numero":"Letra");
		System.out.println(validaChar('L')==true?"Numero":"Letra");

	}
}
R

olha so galera, qual a função que retorna o tamanho de um vetor?

e não tem uma forma mais simples de atribuir uma quantidade muito grande de valores a um vetor?

lembrando que não posso usar um for ja que esses meu valores são diferentes.

R

size()

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Vector.html

R

uma otra parada galera!

eu to usando uma área de texto no meu program, como que eu mudo a cor de uma palavra?

R

Há algum comando para eu esvaziar o meu vetor?

otra coisa tambem, eu queria colocar os char em uma string, eu estou usando

token += letraChar;

mas não esta funcionando!
alguem sabe por que?

D

Porque você não usa um vetor passando a todos os elementos do seu vetor o valor vazio "" ?!

Assim por exemplo:

public class Vetor {

	public static void main(String[] args) {
		String vetor[]= new String [10];
		for(int i = 0; i <10; i++){
			vetor[i] = "";
			System.out.println("O valor do vetor é: " + vetor[i]);
		}
	}
}
R

só usar o clear()

R

Cara, tu tem a API do Java? Se não tiver, seria bom tu pegá-la. Dá pra tirar muita dessas tuas dúvidas apenas a consultando.

R

eu estava querendo saber como que eu escrevo uma palavra de cor diferente em uma área de texto.

ex:

exemplo de [color=“red”]cor[/color] em uma área de texto.

se alguém puder me ajudar.! :wink:

quanto a API, eu não tenho não, mas vo da uma procurada, o meu problema no momento é que estou com o tempo curto pra terminar esse trabalho. :sad:

Criado 4 de maio de 2005
Ultima resposta 10 de mai. de 2005
Respostas 26
Participantes 5