Arquivos

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?