Gurzi Posted November 7, 2006 at 12:29 AM Report #62595 Posted November 7, 2006 at 12:29 AM Bem nao me entendo com o apoio do reference que a Sun dispoe.. o que faz realmente isto: Reader in ; in = new BuferredReader(new FileReader(args)) nao percebo o que é o Reader nem o BufferedReader nem o FileReader
Hipnoted Posted November 7, 2006 at 09:03 AM Report #62610 Posted November 7, 2006 at 09:03 AM Penso que isso lê um ficheiro, ficando o conteúdo em "in". Quanto ao que tem lá dentro, dá uma vista no API Java onde tem a documentação de I/O que lá explica tudo direitinho. "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"
Dabubble Posted November 7, 2006 at 12:06 PM Report #62637 Posted November 7, 2006 at 12:06 PM Explicacao simples: Reader é um interface implementado por BufferedReader que te permite ler de uma determinada fonte linha a linha. FileReader diz que essa fonte é um ficheiro cuja path é: args. Com essa linha ficas com um reader sobre o ficheiro cuja path é args. Se estas a utilizar um BufferedReader não o deves escoder por trás do interface pois assim nao tens acesso a métodos como readLine() que é bastante conveniente e uma das principais vantagens. exemplo de como ler um ficheiro inteiro (por no ecra) com esse metodo: BufferedReader br = new BuferredReader(new FileReader(args)); String line; while ((line = br.readLine()) != null){ System.out.print(line); }
TheDark Posted November 7, 2006 at 12:13 PM Report #62638 Posted November 7, 2006 at 12:13 PM Raio da tag de itálico é chata. Desaparecido.
Knitter Posted November 7, 2006 at 12:34 PM Report #62646 Posted November 7, 2006 at 12:34 PM Não creio que a explicação esteja bem.... A classe Reader não é uma interface para um BufferedReader, ela é simplesmente uma interface que define comportamentos de leitura, e que por acaso o BufferedReader implementa. A classe BufferedReader implementa também um buffer para que possam ser feitas leituras com mais flexibilidade. Outro pormenor é que a classe BufferedReader é usada para streams de texto e apenas para streams de texto, por isso se o ficheiro que está a ser criado não é um ficheiro de texto a leitura não vai funcionar correctamente. Hum... esta também não é uma boa explicação mas para explicar melhor acho que tenho de explicar o que são streams em Java... ficamos assim 👍
Dabubble Posted November 7, 2006 at 01:50 PM Report #62663 Posted November 7, 2006 at 01:50 PM Não creio que a explicação esteja bem.... A classe Reader não é uma interface para um BufferedReader, ela é simplesmente uma interface que define comportamentos de leitura, e que por acaso o BufferedReader implementa. Já tinha corrigido mesmo antes do teu post (não tinha ficado claro, mas claro que não se utilizaria um interface para apenas uma classe). Mas na realidade estamos os dois errados, Reader é a classe abstracta mãe de BufferedReader. BufferedReader está limitado a texto da mesma forma que o notepad está limitado a texto ou seja BufferedReader lê ficheiros binários mas tenta tranformar tudo em caractéres aparecendo estes da mesma forma que abrindo um ficheiro binário com o notepad. Em java existem dois conceitos de streams : Streams de caractéres e Steams de bytes. Para manipular os primeiros devem-se usar subclasses de Reader e Writer e para manipular os segundos subclasses de InputStream e OutputStream.
Knitter Posted November 7, 2006 at 02:11 PM Report #62671 Posted November 7, 2006 at 02:11 PM Assumi que estavas certo em relação a ser uma interface e nem fui verificar 👍 Tenho algures um pdf com uma tabela de streams e a sua utilização, se o encontrar coloco-o por aqui. Peace.
Dabubble Posted November 7, 2006 at 02:20 PM Report #62673 Posted November 7, 2006 at 02:20 PM isso dava jeito... 👍 talvez noutro sitio?
Gurzi Posted November 7, 2006 at 06:11 PM Author Report #62699 Posted November 7, 2006 at 06:11 PM Não entendi muito bem.. esconder por trás da interface, como assim ???? é que no exemplo eles fazem Reader in; e tu não o fizeste! Sou iniciante nisto! 👍
Knitter Posted November 8, 2006 at 05:47 PM Report #62970 Posted November 8, 2006 at 05:47 PM Estás a tentar focar-te na linguagem sem perceberes os conceitos de POO... O que acontece é que a classe Reader é superclasse de BufferedReader, logo o que vês no exemplo da sun é válido, mas ficas com uma referência para um objecto que não o BufferedReader. O que o Dabubble fez foi apenas manter a referência para o BufferedReader, dessa forma consegue acesso a todos os métodos que são disponibilizados pela classe BufferedReader. Confuso?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now