Sign in to follow this  
tuga

Abertura De Ficheiro

Recommended Posts

oi ando a testar um codigo de abertura de ficheiros mas não o estou a perceber lá muito bem. Se me pudessem explicar as linhas que tem os pontos de interrogação agredecia muito!!

import java.io.*; 

class OpenFile 
{ 
public static void main(String[] args){

System.out.println("esta função vai abrir um ficheiro ");


try{

   FileReader f = new FileReader("c:\\arq.txt");     //vai ler o ficheiro na localização especificada
   BufferedReader in =new BufferedReader(f);         // ??????????????????
   String linha =in.readLine();                     // ????????????????
        while(linha !=null ){                       // enquanto não chegar ao fim
       System.out.println(linha);                   // imprime na tela a string lida
       linha =in.readLine();                        // ????????????????
    } in.close();                                   // fecha o ficheiro
}
    catch(IOException e){
    System.out.println("Erro ao carregar o ficheiro");      // esta parte acho que é para o casso de ocorrer algum erro ao abrir o ficheiro 
    }

} 
}

postem aí qlq coisa

Obrigado

Share this post


Link to post
Share on other sites

Olá, aqui vai alguma ajuda:

BufferedReader in =new BufferedReader(f);

Esta é uma classe que ajuda na leitura, para que você não tenha que ler caracter por caracter.

Ela mantem um buffer, guardando blocos de itens lidos, na proxima linha você vai entender pra que.

linha =in.readLine();

Aqui, você manda o BufferedReader ler uma linha inteira do arquivo (ou seja, até um caracter \n) e atribui a linha.

Espero ter ajudado,

Abraços

Share this post


Link to post
Share on other sites

Vlw mesmo...

mas pelo o que eu compreendi a BufferedReader só serve pa strings....eu estava procurando uma função que leia blocos de numeros tipo int a partir do ficheiro como por exemplo:

01011110 11111100 00001010 10001111

em que cada bloco de 8 digitos fica armazenado num vector d inteiros .....

digão qlq coisa

obrigado

Share this post


Link to post
Share on other sites

já que da maneira acima descrita talvez seja um bocado complicado ou mesmo impossivel, uma solução igualmente possivel era ler digito a digito até chegar ao fim, tipoo ficheiro traz o seguinte codigo

10101111 10000001 11001101 11011101

e como tenho de passar estes bolocos binarios para decimal talvez fosse melhor fazer a leitura bit a bit e fazer logo a coversão com uma variavel auxiliar,mas o problema é que ainda não encontrei nenhuma função a fazer essa tarefa....

deêm uma ajuda...

postem aí algo

obrigado

Share this post


Link to post
Share on other sites

É Java 5? Use a classe Scanner.

import java.util.*;
import java.io.*;

public class Teste {

        public static void main(String[] args) {
                try {
                        Scanner sc = new Scanner(new File("entrada"));
                        while(sc.hasNextInt()) {
                                System.out.println(sc.nextInt());
                        }
                } catch(Exception e) {
                        e.printStackTrace();
                }
        }
}
E você também pode usar a função Scanner.useRadix() pra fazer a conversão diretamente:
import java.util.*;
import java.io.*;

public class Teste {

        public static void main(String[] args) {
                try {
                        Scanner sc = new Scanner(new File("entrada"));
                        sc.useRadix(2);
                        while(sc.hasNextInt()) {
                                System.out.println(sc.nextInt());
                        }
                } catch(Exception e) {
                        e.printStackTrace();
                }
        }
}

Mas assim fica muito fácil. =)

Share this post


Link to post
Share on other sites

É mesmo, assim fica muito facil...... o programa lê o binario e converte automaticamente só que os valores não ficam armazenados em variaveis, pois no programa que eu queria fazer era sendo o primeiro numero e o ultimo codigos que tem de ser validados e que tem de ser iguais a 85 tanto o primeiro como o ultimo, assim o importante são o 2º e 3º numero pois são esses que variam......tentei fazer um if else pa validar o codigo no meio do while pensando que o nextint fosse uma variavel mas não dá....desta maneira qual será a forma mais facil e simples de armazenar os valores em variaveis e ao mesmo tempo validar os codigos????

ahhh e é java 5 é...

postem aí qlq coisa

obrigado

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this