Bom dia.
Estou com dificuldades para ler um texto, guarda-lo em um txt ou então ler um texto digitado pelo usuario e guardar em um arquivo.
Peguei estes 2 exercicios para fazer mas nem sei como começar
1 Crie um teste que faça a leitura do conteúdo de um arquivo e grave em outro arquivo.
2 Crie um teste que faça a leitura do teclado e grave em arquivo.
Alguem ai sabe de algum artigo que possa ajudar, ou alguma dica ?
Eu não consegui entender a explicação da apostila do FJ-11 =/
Sim sim tem estes exercicios mesmo.
Mas quando fui revisar em casa após o curso percebi que não entendi muito bem o conceito.
Por exemplo esta explicação da apostila
"Apesar da classe abstrata Reader já ajudar no trabalho de manipulação de caracteres, ainda seria difícil
pegar uma String. A classe BufferedReader é um Reader que recebe outro Reader pelo construtor e concatena
os diversos chars para formar uma String através do método readLine:
class TestaEntrada {
public static void main(String[] args) throws IOException {
InputStream is = new FileInputStream("arquivo.txt");
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
}
} "
Eu não entendi bem esta parte. A primeira linha lê o primeiro byte do arquivo, ai passa para a InputStreamReader e etc…
Não entendi este fluxo.
class TestaEntrada {
public static void main(String[] args) throws IOException {
InputStream is = new FileInputStream("arquivo.txt");
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
}
}
Linha 3 - abre um arquivo em “modo binário” para leitura (new FileInputStream) e atribui o objeto correspondente a esse arquivo aberto a uma variável is, do tipo InputStream
Linha 4 - encapsula o objeto FileInputStream dentro de um InputStreamReader (leitura em “modo texto”). Atribui o objeto encapsulado a uma variável isr. O InputStreamReader transforma todo InputStream (“leitura em modo binário”) em um Reader (“leitura em modo texto”).
Linha 5 - encapsula o objeto InputStreamReader dentro de um BufferedReader (leitura em “modo texto”, com um “buffer” que serve para acelerar o acesso aos dados.)
Linha 6 - Lê uma linha do arquivo de entrada e a atribui a uma variável s do tipo String.
Só para explicar melhor, a diferença entre “modo binário” e “modo texto” ao abrir um arquivo deve-se ao fato que:
a) Quebras de linha são diferentes entre arquivos criados no Unix/Linux/MacOSX e no Windows;
b) Os caracteres podem estar em representações (“encodings”) diferentes.
Podemos ter um arquivo em que os caracteres ocupem 2 bytes cada (UCS-16, também conhecido por “Unicode”), ou em que os caracteres ASCII ocupem 1 byte e os caracteres acima de 127 ocupem 2, 3 ou 4 bytes (UTF-8 ) ou que só possa representar os caracteres de 0 até 255 (Windows-1252, também conhecido como “ANSI”) .
Essa conversão é feita automaticamente quando vocè usa um Reader (como um InputStreamReader).
Caracas Valeu mesmo !
O seu primeiro post matou a pau a questão.
Estou com dificuldades também para escrita de um arquivo… por exemplo Digitar um texto e grava-lo em um arquivo .txt
Mas creio que é só voltar o fluxo
Não deve ser tão dificil faze-lo
Cara obrigado mesmo !