-3

嗨,我正在尝试读取文本文件,然后通过更改从第一个文件读取的数据中的某些字段,将读取的数据写入 Java 中的新文件。我被困在这里:我可以读取文件但选择性修改非常困难,我不明白如何修改文件中行的特定部分?文本文件为 details.txt,其内容如下:

彼得,纽约,2331.32

沃尔什,加利福尼亚州,3224.43

等等。现在,我想使用包含更新值的数组来修改双精度值,如下所示:

Double[] updatedValues = {33231.23,32344.34};

谁能告诉我如何通过从数组中读取值并将这些值写入新的文本文件来更新双精度值?

4

3 回答 3

2

一种可能的方法是使用String.split()方法拆分行,组成新行,然后将其写入文件。例如:

String[] data = line.split(",");
data[2] = "" + updatedValues[i];
// now join array of data back and write it to the new file.
于 2013-04-04T13:42:31.843 回答
0

您可以使用String.split()来执行此操作

这是伪代码:

Double[] updatedValues = {33231.23,32344.34}
While (read line from file !=null or empty)
{
String[] tokens= line.split(",");
tokens[2] = "" + updatedValues[i];
//now write the three values in the string array tokens to another file separated by some seperator
}
于 2013-04-04T13:58:44.350 回答
0

尝试

    double[] updatedValues = {33231.23,32344.34 .....
    Scanner sc = new Scanner(new File("file1"));
    PrintWriter pw = new PrintWriter(new File("file2"));
    for (int i = 0; sc.hasNextLine(); i++) {
        String l = sc.nextLine();
        l = l.substring(0, l.lastIndexOf(','));
        pw.printf("%s,%f%n", l, updatedValues[i]);
    }
    sc.close();
    pw.close();

请注意,updatedValues 长度应 >= 文件行数

于 2013-04-04T13:52:23.010 回答