我有一个文件“a.txt”,其中包含以下几行:
14,15,16,17
13,16,15,14
15,17,12,13
...
...
我知道每行总是有 4 列。
我必须读取此文件并根据分隔符拆分行(这里是“,”)并将每列的值写入其相应文件中,即如果列中的值为 14,则必须将其转储/写入 14 .txt,如果是 15,那么它将被写入 15.txt,依此类推。
这是我到目前为止所做的:
Map <Integer, String> filesMap = new HashMap<Integer, String>();
for(int i=0; i < 4; i++)
{
filesMap.put(i, i+".txt");
}
File f = new File ("a.txt");
BufferedReader reader = new BufferedReader (new FileReader(f));
String line = null;
String [] cols = {};
while((line=reader.readLine()) != null)
{
cols = line.split(",");
for(int i=0;i<4;i++)
{
File f1 = new File (filesMap.get(cols[i]));
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(f1)));
pw.println(cols[i]);
pw.close();
}
}
所以对于文件“a.txt”的第 1 行,我将不得不打开、写入和关闭文件 14.txt、15.txt、16.txt 和 17.txt
再次对于第 2 行,我必须再次打开、写入和关闭文件 14.txt、15.txt、16.txt 和一个新文件 13.txt
那么有没有更好的选择,我不必打开和关闭之前已经打开的文件。
在完成操作结束时,我将关闭所有打开的文件。