sexta-feira, 10 de setembro de 2010

Ler e salvar em Arquivo TXT

 Pequeno programa para redigir, ler, salvar e inverter Strings em JAVA:

--------------------------------------------------------------------------------------------------------
/**
 * @(#)ls.java
 *
 * ls application
 *
 * @author
 * @version 1.00 2010/9/6
 */

import java.io.*;
import java.util.Scanner; 

public class ls {
   
    public static void main(String[] args) {
       
        ls ls = new ls();
        Scanner entra = new Scanner(System.in);
       
        int i=0, w=0;
       
        String line="", text="", caminhonome="";
        String aux = "";
        aux += "Digite a opção desejada: \n";
        aux += "1 - Digitar texto; \n";
        aux += "2 - Salvar texto; \n";
        aux += "3 - Abrir texto; \n";
        aux += "4 - Inverter segunda linha do texto; \n";
        aux += "5 - Fechar aplicativo \n";
               
        while (i != 5){
            System.out.println(aux);
            i = entra.nextInt();
           
            switch(i){
                case 1: //DIGITA FRASES
                    System.out.println("Quando acabar o texto, digite 'S' e dê enter");
                    while (w==0){
                        line = entra.nextLine();
                        if(line.equals("S")){
                            w=1;
                        }
                        line+="P";
                        text+=line+"\n";
                    }
                    break;
                case 2: // salva texto
                    System.out.println("Digite o caminho completo e o nome do arquivo a ser salvo:");
                    caminhonome = entra.next();                   
                    ls.salvar(text, caminhonome);
                    break;
                case 3: // abre texto
                    System.out.println("Digite o caminho completo e o nome do arquivo a ser aberto:");
                    caminhonome = entra.next();
                    text = ls.abrir(caminhonome, 1);
                    System.out.println(text);
                    break;
                case 4: // inverte texto
                    System.out.println("Digite o caminho completo e o nome do arquivo a ser invertido:");
                    caminhonome = entra.next();
                    text = ls.abrir(caminhonome, 0);
                    System.out.println(text);
                    break;
                case 5: // fecha programa
                    i=5;
                    break;
                default:
                    System.out.println("Opção não Encontrada.");
                    break;
            }
        }
        System.exit(0);
    }
   
    public String abrir(String caminhonome, int abre){
        FileInputStream fis;
        String retorno=""; 
        try { 
            fis = new FileInputStream(caminhonome); 
            DataInputStream dis = new DataInputStream(fis);
            int c=0; 
            while (dis.available() != 0) {
                String line = dis.readLine();
                c++;
               
                if(abre==1){
                    if (line.equals(" P")){
                        retorno += "\n";
                    }
                    else{
                        retorno += line;
                    }
                }
                else{
                    if (line.equals(" P")){
                        retorno += "\n";
                    }
                    else{
                        retorno += process(line, c);
                    }                     
                }
            } 
        }
        catch (FileNotFoundException e) { 
            System.out.println("Arquivo não encontrado."); 
        }
        catch (IOException e) { 
            System.out.println("Erro ao utilizar o arquivo."); 
        }
        return retorno;
    }
    public void salvar(String line, String caminhonome){
        try {
            BufferedWriter out = new BufferedWriter(new FileWriter(caminhonome));
            out.write(line);
            out.close();
        }
        catch(IOException e){
            System.out.println("Erro ao salvar o arquivo.");
        }
   
        System.out.println("Arquivo sobreescrito com sucesso");
    }
   
    public String process(String line, int c){
        String text="";
        if(c%2==0){
            StringBuffer sb = new StringBuffer(line);
            text += sb.reverse() +"\n";
            return text;               
        }
        else{
            return line;
        }
    }
}

Nenhum comentário:

Postar um comentário