Galerinha, estou começando a ver arquivos em java e estou prescisando da ajuda de vcs. É o seguinte eu tenho um arquivo .txt e gostaria de percorrer todo esse arquivo, quando a frase desejada fosse encontrada ela seria gravada em um outro arquivo txt. Se alguém puder me ajudar porque por enquanto eu nao tenho a mínima ideia de como fazer isso. Abraços. :idea:
Bom dia João,
Você poderá usar:
FileOutputStream fout = new FileOutputStream("nome_do_arquivo.txt",true);
DataOutputStream dout = new DataOutputStream(fout);
// Aqui você seta o nome do arquivo, por padrao ele sera salvo na pasta do projeto, e o data e para escrever no arquivo.
dout.writeUTF("Isto grava uma String");
dout.writeDouble("Isto grava um Double");
// No arquivo texto as variaveis sao armazanadas e separadas por ";"e \n para cada linha
Para voce fazer outro arquivo no mesmo processo usara:
[code]FileInputStream finp = new FileInputStream(nome_do_arquivo.txt);
DataInputStream dinp = new DataInputStream(finp);
// Aqui voce lê o arquivo[code]
// Para ler as informacões é usado:
[code]dinp.readUTF(); // ler string e o restante é como no exemplo anterior para ler [code]
IMPORTANTE: AS INFORMAÇÕES SÃO LIDAS NA ORDEM QUE FORAM ARMAZENADAS, Voce provavelmente tera que usar try{}catch{} nas declarações .
Bom dia
Você quer fazer algo semelhante ao grep? É bem fácil.
import java.io.*;
public class Grep {
/**
* Uma versão extremamente simplificada do grep.
* @param args args[0] = string a ser procurada, args[1] = arquivo de entrada, args[2] = arquivo de saída
*/
public static void main (String[] args) {
if (args.length != 3) {
System.err.println ("Sintaxe: java -cp . Grep string_a_ser_procurada arquivo_entrada arquivo_saida");
System.exit (1);
}
BufferedReader br = null;
PrintWriter pw = null;
String encoding = "Windows-1252";
try {
br = new BufferedReader (new InputStreamReader (new FileInputStream (args[1]), encoding));
pw = new PrintWriter (new BufferedWriter (new OutputStreamWriter (new FileOutputStream (args[2]), encoding)));
for (String linha = br.readLine(); linha != null; linha = br.readLine()) {
if (linha.indexOf (args[0]) >= 0) { // achou a string. Mude indexOf por outra coisa se quiser algo mais sofisticado.
pw.println (linha);
}
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (br != null) try { br.close(); } catch (IOException ex) {}
pw.close();
}
}
}
tentou usar um java.util.Scanner?