为什么bufferedwriter不写入文件?

小牛:

这是代码片段。

read = new FileReader("trainfiles/"+filenames[i]);
                br = new BufferedReader(read);
                while((lines = br.readLine())!=null){
                    st = new StringTokenizer(lines);
                    while(st.hasMoreTokens()){
                        bw = new BufferedWriter(new FileWriter("files/file.txt"));
                        bw.write(st.nextToken());
                        bw.newLine();
                    }
                }

编辑:我正在从目录中读取文件。因此,我需要在每个循环中打开阅读器。我进行了一些修改,但同时也没有写入该文件。这是代码:

for(i=0;i==0;i++){
            if(filenames[i].matches(".*ham.*")){
                System.out.println("ham:"+filenames[i]);
                read = new FileReader("trainfiles/"+filenames[i]);
                br = new BufferedReader(read);
                while((lines = br.readLine())!=null){
                    st = new StringTokenizer(lines);
                    while(st.hasMoreTokens()){
                        System.out.println(st.nextToken());
                       bw.write(st.nextToken());
                    }
                }
                bw.close();
                br.close();

            }else{
                System.out.println("spam:"+filenames[i]);
            }
                        }

编辑:我修改了代码,但没有成功,

while((lines = br.readLine())!=null){
                    st = new StringTokenizer(lines);
                    bw = new BufferedWriter(new FileWriter("files/file.txt"));
                    while(st.hasMoreTokens()){
                        System.out.println(st.nextToken());
                       bw.write(st.nextToken());
                    }
                    bw.close();
                }

                br.close();

而且我收到此错误: Exception in thread "main" java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(StringTokenizer.java:332) at Test.main(Test.java:30)

编辑:谢谢..我想通了。实际上,我在eclipse中创建了一个目录,但没有刷新它来查看内容。真是太傻了...还是非常感谢

蒂亚戈:
  • 您正在循环内创建FileWritter,因此您将始终在每个循环中截断文件。
  • 您忘了关闭/冲洗水桶
  • 但是如果运气好(终止程序可能会导致写入器刷新),该文件将包含输入文件的最后一个单词,我只能猜测这是换行符,打开文件检查内容时您可能会错过它。

您的内部循环应如下所示:

try (BufferedWriter bw = new BufferedWriter(new FileWriter("file.txt"))) {
    while (st.hasMoreTokens()) {
        bw.write(st.nextToken());
        bw.newLine();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java BufferedWriter 不写入文件

为什么BufferedWriter不通过打开的FileChannel写入文件?

为什么 BufferedWriter 将数据部分写入文件?

为什么std :: fstream不写入文件?

为什么 fstream 不写入文件?

为什么我的FileOutputstream不写入文件?

为什么 BufferedWriter 不会在文件中写入所有行?

为什么 BufferedWriter 不会将 URL 内容写入文本文件?

BufferedWriter 在刷新和关闭后不写入文件

为什么PHP 7.2 fopen(/ tmp,a)不写入文件?

我的资源文件夹中的文件没有使用try-with-resources和BufferedWriter写入,为什么?

BufferedWriter将不写入文件

为什么 kivy 不写入 TextArea

为什么排序选项-c(检查是否排序)和-o(写入输出文件)不兼容

为什么ofstream会将我不包含的值写入我的文件?

为什么不包含文件

在Java中,使用BufferedWriter或直接写入文件有什么区别?

为什么不能正常写入文件?

为什么我的BST无法写入文件?

为什么在写入文件之前移动 int ?

为什么将文件写入空白?

为什么我的StreamWriter无法写入文件?

为什么我的代码未写入文件?

为什么写入文件不起作用?

为什么我的较低级别的日志不写入文件,但错误和更高级别的文件呢?

使用BufferedWriter在文件中写入整数

为什么我的写入函数无法正确写入 .bin 文件?

ffmpeg:为什么不写入音轨的元数据?

节点:fs write()不在循环内写入。为什么不?