BufferedWriter创建空文件,里面没有任何内容

时间:2016-10-27 13:23:52

标签: java hadoop outputstream bufferedwriter

我有以下代码:

{{1}}

我在其中一些课程中使用Hadoop库。在我执行它之后,我看到文件已经创建但是里面没有任何内容,任何想法为什么会这样?

2 个答案:

答案 0 :(得分:0)

没有足够的信息来进行正确的诊断,但您的代码看起来正确...除了(可能)路径。在Linux系统上(至少)普通用户不应该将文件写入“/”目录。

所以,我可以提出一些可能的解释:

  1. 正在编写文件,但不会写入您正在查看的目录。

  2. 文件打开失败(或写入失败)但您的应用程序压缩异常......在某些您未向我们展示过的代码中。

  3. 啊!看起来你正在使用org.apache.hadoop.fs.FileSystem! (java.nio.file类的FileSystem版本没有get方法。)

    我不认为这会改变我的答案,除了能够写入“/”目录的东西。 Hadoop FS可以允许这样做。

答案 1 :(得分:0)

FileWriterBufferedWriter一起使用。

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();
}

我希望我有所帮助。

祝你有个愉快的一天。 :)