java - 从文件中读取并将某些部分写入另一个文件中

标签 java formatted-input

我必须读取文本文件并格式化输入。我是从文件中读取 java 的新手,我不知道如何处理我所读内容的某些部分 这是初始文件:http://pastebin.com/D0paWtAd

我必须在另一个文件中写入以下输出: 平均,乔,44,31,18,12,9,10

我已经设法从文件中获取所有内容并将其打印到输出。我需要帮助来获取我需要的输出并将其打印到屏幕上。如有任何帮助,我们将不胜感激。

这是我到目前为止所写的:

public class FileParsing {
public static String

read(String filename) throws IOException {
BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\Bogdi\\Desktop\\example.txt"));

String s;
StringBuilder sb = new StringBuilder();
while((s = in.readLine())!= null)   sb.append(s + "\n");

in.close();

return sb.toString();
}

最佳答案

如果您的目标是在另一个文件中执行指定的输出,则在处理文件之前不需要首先在 StringBuilder 中获取文件的内容,您可以直接将处理后的数据附加到 StringBuilder 中,然后将结果写入文件中。以下是适用于给定文件的示例,但如果将来 key 发生变化,您可能必须修改它:

以下方法将正确处理文件中的数据

public static String read(String filename) throws IOException {
    BufferedReader in = new BufferedReader(new FileReader(filename));

    String s;
    StringBuilder sb = new StringBuilder();
    while((s = in.readLine())!= null) {
        String[] split1 = s.split("=");

        if (split1[0].equals("name")) {

            StringTokenizer tokenizer = new StringTokenizer(split1[1]);
            sb.append(tokenizer.nextToken());
            sb.append(",");

            sb.append(tokenizer.nextToken());
            sb.append(",");


        } else if (split1[0].equals("index")) {

            sb.append(split1[1] + ",");

        } else if (split1[0].equals("FBid")) {
            sb.append(split1[1]);

        } else {

            StringTokenizer tokenizer = new StringTokenizer(split1[1]);
            String wasted = tokenizer.nextToken();

            sb.append(tokenizer.nextToken() + ",");

        }

    }

    in.close();

    return sb.toString();
}

下一个方法将读取任何字符串到文件

public static void writeStringToFile(String string, String  filePath) throws IOException {

    BufferedWriter writer = new BufferedWriter(
            new FileWriter(
                    new File(filePath)
                    )
            );

    writer.write(string);

    writer.newLine();
    writer.flush();
    writer.close();

}

这是一个简单的测试(File1.txt 包含您在粘贴箱上共享的文件中的数据,我将它们写入另一个文件中)

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

    String datas = read("C:\\Tests\\File1.txt");
    System.out.println(datas);

    writeStringToFile(datas, "C:\\Tests\\FileOuput.txt" );


}

它将产生您期望的确切输出

[编辑] @idk,显然你在执行我的示例时遇到了异常,而它对我来说工作得很好。这只能意味着数据层面存在错误。这是我使用的数据示例(我相信我完全复制了您共享的数据)

datas file

结果如下:

result

关于java - 从文件中读取并将某些部分写入另一个文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29899326/

相关文章:

java - 使用循环在 Java 中制作表格

java - 如何在java中的 HashMap 中像sql中的LIKe运算符一样搜索

将字符串转换为十六进制代码时的java字符集解码问题

java - 如何从 Java 中的类返回类的枚举?

java - 现代 Java 编译器/JVM 是否内联函数/方法,这些函数/方法是从一个地方调用的?

python-2.7 - 带有强制前导零的python科学记数法

php - 将格式化的字符串解析为数组的数组

c++ - scanf ("%d\n"的问题,&i)

c - 从 C 中的单个格式化键盘行填充数组