java - 无法让 BufferedWriter 写出文件中的所有数据

标签 java file-io bufferedreader bufferedwriter

我有一个迭代目录的函数,应该读取每个文件并将其写入生成的 HTML 文件。 BufferedReader 应该能够正确读取,因为我在其他地方使用了相同的东西。但是,在生成的 HTML 文件中,我仅从目录中的原始文件中获取每隔一行的数据。这是应该完成此任务的方法:

// Tests to see if "File" is actually a directory or file,
// then writes out the file if it passes the test
void writeFiles(File directory, BufferedWriter bw) {
    try{
        for( File file : directory.listFiles() ){
            if(!file.isDirectory()) {//is a file lets read it
                FileInputStream filestream = new FileInputStream(file);
                DataInputStream in = new DataInputStream(filestream);
                BufferedReader br = new BufferedReader(new InputStreamReader(in));
                String buff = new String();
                bw.write("<b>////////////////////////////////</b><br/>");
                bw.write("<b>File: " + file.getName() + "</b><br/>");
                bw.write("<b>////////////////////////////////</b><br/>");
                while((buff=br.readLine()) != null){
                    bw.write(br.readLine() + "<br/>");
                }
                bw.write("`<br/>`");
                bw.write("`<br/>`");

           }else {//will make it a recursive search
               writeFiles(file, bw);
           }
        }
    }catch(FileNotFoundException fnf){
        fnf.printStackTrace();
    }
    catch(IOException io){
        io.printStackTrace();
    }
}

对于问题中代码的格式错误,我深表歉意。由于 HTML,预格式化文本不会让我的代码正确显示。但是,我确实认为我的代码中存在文件 I/O 问题。有谁知道它是 BufferedReader 还是 BufferedWriter?谢谢。

最佳答案

这是您的问题:

while((buff=br.readLine()) != null){
  bw.write(br.readLine() + "<br/>");
}

您正在调用 br.readLine() 两次。

尝试:

while((buff=br.readLine()) != null){
  bw.write(buff + "<br/>");
}

关于java - 无法让 BufferedWriter 写出文件中的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11439848/

相关文章:

java - 从文件中读取文本并将每行中的每个单词存储到单独的变量中

java - 我的随机有什么问题吗?

java - 从 C++ 应用程序从 Java 调用 C++ 时,如何避免 UnsatisfiedLinkError?

java - 在android中创建一个内部文件夹

java - 覆盖 web.xml 中 URL 模式 "default servlet"的 "/"行为

android - Xamarin Android 文件系统路径

C#多线程文件IO(阅读)

java - java逐行下载文件

java - 如何在Java中使用echo读取行?

java - 索引超出范围错误,线程 main 中出现异常