Estoy tratando de identificar la palabra después del carácter (=) en cada línea del archivo y guardarla en otro archivo. A continuación se muestra el código que he escrito hasta ahora, pero no funciona correctamente como quiero. ¿Algún programador de ideas?

My input.txt file is :

President=obama
Vice President=Biden
Head of State=Kerry

package Test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.StringJoiner;

public class Stringbuilder {
    public static void main(String[] args) throws FileNotFoundException,     IOException {
    {

        try (BufferedReader br = new BufferedReader(new FileReader("input.txt"))) {
            String sCurrentLine;

            while ((sCurrentLine = br.readLine()) != null) {

                String[] results = sCurrentLine.split("");

                String word = sCurrentLine;

                String Sym = "=";

                for (int i = 0; i < sCurrentLine.length(); i++) {

                    if (word.contains(Sym)) {
                        // System.out.println(results[1]);

                        for (int j = 0; j < sCurrentLine.length(); j++) {

                            String content = results[j];

                            System.out.println(content);

                            File file = new File("output.txt");

                            if (!file.exists()) {
                                file.createNewFile();
                            }

                            FileWriter fw = new FileWriter(file.getAbsoluteFile());
                            BufferedWriter bw = new BufferedWriter(fw);
                            bw.write(content);
                            bw.close();

                            System.out.println("Done");

                        }
                    }
                }
            }

        }
    }
}

}

0
sainid 19 ago. 2016 a las 20:09

2 respuestas

La mejor respuesta

¿Quieres algo como esto?

public static void main(String[] args) throws IOException {
    try (BufferedWriter bw = new BufferedWriter(new FileWriter(new File("output.txt").getAbsoluteFile()))) {
        for (String sCurrentLine: Files.readAllLines(Paths.get("input.txt"))) {
            String[] splitted = sCurrentLine.split("=");
            if (splitted.length > 1) {
                for (int i = 1; i < splitted.length; i++) {
                    bw.write(splitted[i].split("\\s+")[0] + "\n");
                }
            }
        }
    }
}
0
David Pérez Cabrera 20 ago. 2016 a las 09:12

Agregaría una declaración if dentro de su bucle for anidado y cambiaría las condiciones iniciales:

                    for (int j = 1; j < results.length(); j++) {

                        String previous=results[j-1];
                        if(previous.equals(Sym)){
                          //write results[j] to file
                      }
                    }
0
Ricardo Leon 19 ago. 2016 a las 17:45