Duvida em File...fr.read(in)

1 resposta
P

Olá ´pessoal,

duvida porque na leitura das informações do arq. saiu o numero
43…

Minha duvida se alguém puer me ajudar agradeceria…

abs

package certificacao.licão_8_7;

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

class Writer2 {
	  public static void main(String [] args) {
	    char[] in = new char[50];           // to store input
	    int size = 0;
	    try {
	      File file = new File(             // just an object
	                  "fileWrite2.txt");
	      FileWriter fw =
	                 new FileWriter(file);  // create an actual file
	                                        // & a FileWriter obj

	      fw.write("paulo\ncristina\nmaria\nsilvio\nboneca\nprincesa")  ;                                // the file
	      fw.flush();                       // flush before closing
	      fw.close();                       // close file when done

	      FileReader fr =  new FileReader(file);  // create a FileReader
	                                        // object
	      size = fr.read(in);               // read the whole file!
	      System.out.print(size + " ");     // how many bytes read
	      for(char c : in)                  // print the array
	        System.out.print(c);
	      fr.close();                       // again, always close }
	    } catch(IOException  e) { }
	  }
	}

resultado:
43 paulo
cristina
maria
silvio
boneca
princesa

1 Resposta

T

a) Por acaso o primeiro caracter do seu arquivo é o sinal “+”?
É que “read”, que retorna um inteiro, é na verdade uma função que lê 1 CARACTER do arquivo, e lhe retorna esse caracter (se você fizer o cast para char), ou então -1 se encontrar o final do arquivo. (43 é o valor ASCII para o caracter “+”).

b) Para você determinar o tamanho do arquivo em bytes, use new File (“nome do arquivo”).size(), que lhe retorna um long (já que arquivos podem ser tão grandes que ultrapassam o valor máximo de um int.

Criado 7 de maio de 2008
Ultima resposta 8 de mai. de 2008
Respostas 1
Participantes 2