如何拆分文本文件并将2个值存储在一行中?

时间:2014-06-23 20:12:34

标签: java text save storage java-io

我有一个文本文件 - > 23/34< - 我正在研究Java程序。

我想将它们存储在String One = 23anotherString = 34中,然后将它们放在一个字符串中,将它们写在文本文件中,但它不起作用。 :(每次它休息。也许是因为拆分方法,但我不知道如何分开它们。

try {
    BufferedReader in = new BufferedReader (new FileReader (textfile) );
    try {
        while( (textfile= in.readLine()) != null ) {
            String[] parts = textfileString.split("/");
            String one = parts[0];
        }
    }
}

当我打印或存储one + "/" + anotherString时,它会在一行中进行换行,但我希望将它们全部放在一行中。 :(

3 个答案:

答案 0 :(得分:1)

public static void main(String[] args) throws Exception {

    File file = new File("output.txt");
    if (!file.exists()) {
        file.createNewFile();
    }

    BufferedWriter bw = new BufferedWriter(new FileWriter(file.getAbsoluteFile()));
    BufferedReader br = new BufferedReader(new FileReader("input.txt"));

    String line = null;
    while ((line = br.readLine()) != null) {
        String string1 = line.split("/")[0];
        String string2 = line.split("/")[1];
        bw.write(string1 + string2 + "\n");
        bw.flush();
    }

    br.close();
    bw.close();

}

档案:

23/34

导致output.txt包含:

2334

您需要读取每一行,并将其拆分为您指定的字符(“/”)。然后将string1分配给第一个分割,将string2分配给第二个分割。然后,您可以根据需要使用变量。要将它们输出到文件,只需将它们与+运算符一起附加。

答案 1 :(得分:0)

您从未向我们展示过如何编写文件,因此我们无法真正帮助您完成代码。这是一种更现代的方法,但我认为它可以满足您的需求。

File infile = new File("input.txt");
File outfile = new File("output.txt");
try (BufferedReader reader = Files.newBufferedReader(infile.toPath());
     BufferedWriter writer = Files.newBufferedWriter(outfile.toPath())) {
    String line;
    while ((line = reader.readLine()) != null) {
        String parts[] = line.split("/");
        String one = parts[0];
        String two = parts[1];
        writer.write(one + "/" + two);
    }
} catch (IOException ex) {
    System.err.println(ex.getLocalizedMessage());
}

答案 2 :(得分:0)

    InputStream stream = this.getClass().getResourceAsStream("./test.txt");
    BufferedReader reader = new BufferedReader(new InputStreamReader(stream));

    String currentLine;

    try {
        while ((currentLine = reader.readLine()) != null) {
            String[] parts = currentLine.split("/");
            System.out.println(parts[0] + "/" + parts[1]);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally{
        try {
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }