在CSV中保留第一列,但将第二列上移一列(JAVA)
假设我的文件系统中已有一个CSV文件在CSV中保留第一列,但将第二列上移一列(JAVA),java,csv,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实现吗?我不想写入另一个文件。。只需更新我正在阅读的内容。感谢您的帮助。多谢各位 编辑以显示当前输出 (注意:0和random在同一列中)Scanner sc
0 red
1 orange
2 yellow
3 green
4 blue
我想更新这些结果,使第一列保持不变,但第二列向上移动一个点,如下所示:
0 orange
1 yellow
2 green
3 blue
4 (some randomly generated color)
这可以用Java实现吗?我不想写入另一个文件。。只需更新我正在阅读的内容。感谢您的帮助。多谢各位
编辑以显示当前输出
(注意:0和random在同一列中)Scanner scan=new Scanner(新文件(“csv.txt”)//或者不管文件名是什么
int[]数字=新的int[5];
字符串[]颜色=新字符串[5];
int i=0;
while(scan.hasNextLine()){
String line=scan.nextLine();
扫描仪s=新扫描仪(行);
如果(s.hasNextInt()){
数字[i]=s.nextInt();
如果(s.hasNext())颜色[i]=s.next();
}
s、 close();
i++;
}
scan.close();
PrintWriter输出=新的PrintWriter(“csv.txt”);
对于(i=0;i
您试图做什么?应该使用新代码。让我知道现在发生了什么。它现在编译,谢谢。这是我以前遇到的类似问题。它不是保留第一列而只更新第二列,而是完全删除第一行。此外,它是在每个数字前附加一个零。。。第一次运行后,我得到的结果是:02、橙色03、黄色04、绿色05、蓝色0随机颜色,随机颜色将进入最后一行的第一列。我在访问特定单元格而不是整个行时遇到问题。我添加了更严格的扫描仪检查。对您的评论的几点评论:(1)文件被新文件覆盖,多次覆盖将扭曲结果。如果要保存覆盖,可以将PrintWriter设置为其他文件名值。(2) 将随机颜色的值放在最后一个println()中的括号之间,其中关于随机颜色的注释为。我编辑了值字符串line=scanner.nextLine();而是扫描.nextLine();(我猜这就是你的意思)。使用新代码,第一列的全部内容将得到0 null。我将尝试你提到的关于保存覆盖的技巧。
02 orange
03 yellow
04 green
05 blue
0 random
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();