「、」で分割されたcsvファイルをスキャンすると、奇妙な出力が得られます。各行の長さに対して、i番目の要素にi +「:」を追加してprintwriterに追加します。元の入力は次のようになります。
8.035156 7.619141 7.105469
7.234375 7.8125 8.244141
6.615234 8.224609 6.361328
それらは実際には「、」で区切られています。
出力は次のようになります
1:8.035156,2:7.619141,3:7.105469,4:7.072266
これも「,」で区切る必要があります。
代わりに、出力は次のようになります。選択範囲をクリックすると、さらに奇妙な時間が表示されます。
01:08.0 02:07.6 03:07.1 04:07.1 05:07.4 06:07.2 07:07.6 08:07.1 09:07.1 10:07.2
12:04:06 AM
,
append ステートメントの最後に文字を追加した場合にのみ、間違った出力が発生します。
public class GeneCsv
{
public static void main(String[] args) throws IOException
{
File file = new File("file.csv");
FileWriter writer = new FileWriter("/Users/home/fileExpression.csv");
PrintWriter pw = new PrintWriter(writer);
Scanner in = new Scanner(file);
boolean firstLine = true;
String[] temp = null;
while (in.hasNextLine())
{
if (firstLine == true)
{
pw.println(in.nextLine());
firstLine = false;
continue;
}
else
{
String line = in.nextLine();
temp = line.split(",");
for (int i = 0; i < temp.length; i++)
{
pw.append(i + ":" + temp[i] + ",");
}
pw.append("\n");
}
}
pw.flush();
pw.close();
writer.close();
}
}