-2
尝试从Java文件中读取数据并将其写入csv文件时遇到问题。我设置了一个ArrayList变量'data',使用Scanner从数据文件中读取行。问题出现在数据被读取并打印在这一行时:System.out.println(line);从文件中读取文件并写入Java文件时遇到问题
它出来是这样的:
[Tim]
[Tim]
[March]
[Tim]
[March]
[11751 N River Dr]
[Tim]
[March]
[11751 N River Dr]
[Apt 4]
[Tim]
[March]
[11751 N River Dr]
[Apt 4]
[Mankato]
[Tim]
[March]
[11751 N River Dr]
[Apt 4]
[Mankato]
[MN]
[Tim]
[March]
[11751 N River Dr]
[Apt 4]
[Mankato]
[MN]
[56001]
当文件看起来就像这样:
[Tim]
[March]
[11751 N River Dr]
[Apt 4]
[Mankato]
[MN]
[56001]
是否有一个原因,它是印刷线路有点不正常?我是否需要在某处添加一个循环来打印主线?我的第二个问题是,当我尝试将该文件编写为CSV文件时,我遇到了打印最后一行(56001)而不是其他任何行的问题。有没有我失踪的事情来做到这一点?这是迄今为止的代码。
import java.util.*;
import java.io.*;
public class ReadFromDat {
/**
* @param <Data>
* @param args
*/
public static ArrayList<String> data;
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
@SuppressWarnings("resource")
Scanner sc = new Scanner(new File("C:\\Users\\Tim\\Desktop\\data.dat"));
data= new ArrayList<String>();
List<String> line = null;
while (sc.hasNextLine()){
data.add(sc.nextLine());
for (String lines: data) {
line = new ArrayList<String>(Arrays.asList(lines.split("\n")));
System.out.println(line);
}
//line = Arrays.asList(data.split("\n"));
//System.out.println(data);
FileWriter output = new FileWriter("C:\\Users\\Tim\\Desktop\\data.csv");
for (String data: line) {
output.write(data);
}
output.close();
}
}
}
[了解如何调试。](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) – shmosel