我试图在HDFS中添加一些文本,但事实证明我必须在每次追加后关闭输出流fin_a.close()
。有没有什么方法可以在不关闭它的情况下附加到文件中?
try{
Path filenamePath = new Path(appId + "_" + "file.txt");
FSDataOutputStream fin_a = null;
FSDataOutputStream fin_c = null;
FileSystem fs = null;
for(String st : list){
fs = FileSystem.newInstance(config);
if(fs.exists(filenamePath)){
fin_a = fs.append(filenamePath);
fin_a.writeUTF(st + "\n"));
fin_a.close();
} else {
fin_c = fs.create(filenamePath);
fin_c.writeUTF(st + "\n"));
fin_c.close();
}
}
fs.close();
} catch (IOException e) {
}
如果那不可能,有没有人知道如何连接list
中的所有文本并写入文件一次?