我有以下代码:
{{1}}
我在其中一些课程中使用Hadoop库。在我执行它之后,我看到文件已经创建但是里面没有任何内容,任何想法为什么会这样?
答案 0 :(得分:0)
没有足够的信息来进行正确的诊断,但您的代码看起来正确...除了(可能)路径。在Linux系统上(至少)普通用户不应该将文件写入“/”目录。
所以,我可以提出一些可能的解释:
正在编写文件,但不会写入您正在查看的目录。
文件打开失败(或写入失败)但您的应用程序压缩异常......在某些您未向我们展示过的代码中。
啊!看起来你正在使用org.apache.hadoop.fs.FileSystem
! (java.nio.file
类的FileSystem
版本没有get
方法。)
我不认为这会改变我的答案,除了能够写入“/”目录的东西。 Hadoop FS可以允许这样做。
答案 1 :(得分:0)
将FileWriter
与BufferedWriter
一起使用。
Path filePath2 = Path.mergePaths(outputPath, new Path( "/SomeFile"));
FileWriter fileWriter2 = null;
BufferedWriter writer2 = null;
try {
fileWriter2 = new FileWriter( filePath2.toFile() );
writer2 = new BufferedWriter( writer2 );
writer2.write("Key: " + key.toString() );
//if you are going to use an Iterator, you better actually use it.
for ( Iterator iterator = col.iterator() ; iterator.hasNext() ; ) {
writer2.write( "\nValue: " + iterator.next()
.getSensCol().toString() );
}
}
catch ( IOException ex ) {
//Exception handling
}
finally {
writer2.close();
fileWriter2.close();
}
我希望我有所帮助。
祝你有个愉快的一天。 :)