将第一列保留为CSV但将第二列向上移动一个(JAVA)

时间:2014-03-04 17:54:51

标签: java csv

假设我的文件系统上已有一个CSV文件

0 red
1 orange
2 yellow
3 green
4 blue

我想将这些结果更新为第一列保留,但第二列向上移动一点,如下所示:

0 orange
1 yellow
2 green
3 blue
4 (some randomly generated color)

这可能与Java有关吗?我不想写到另一个文件..只是更新我正在阅读的文件。任何帮助表示赞赏。谢谢。

编辑以显示当前输出

02         orange
03         yellow
04         green
05         blue
0 random

(注意:0和随机都在同一列中)

1 个答案:

答案 0 :(得分:1)

Scanner scan = new Scanner(new File("csv.txt")); //or whatever the file name is
int[] numbers = new int[5];
String[] colors = new String[5];
int i = 0;
while (scan.hasNextLine()) {
    String line = scan.nextLine();
    Scanner s = new Scanner(line);
    if (s.hasNextInt()) {
        numbers[i] = s.nextInt();
        if (s.hasNext()) colors[i] = s.next();
    }
    s.close();
    i++;
}
scan.close();

PrintWriter output = new PrintWriter("csv.txt");
for (i = 0; i < numbers.length; i++) {
    output.print(numbers[i] + " ");
    if (i + 1 < numbers.length) output.println(colors[i + 1]);
    else output.println(/* random color */);
}
output.close();