在Java中读取和写入同一文件

拉维尼亚:

我想从criteria.txt文件中读取内容,以标记化并在同一文件的末尾附加标记。该程序引发异常:No file found!我不知道我的错误在哪里。任何建议都会帮助我。先感谢您!

这是我的代码:

import java.io.*;
import java.util.StringTokenizer;

public class Test
{
    private FileReader fr;
    private BufferedReader br;
    private FileWriter fw;
    private BufferedWriter bw;
    private StringTokenizer strtok;
    private String s;

    //constructor
    public Test()  
    {
        try
        {
            fw=new FileWriter("criteria.txt", true);
            bw=new BufferedWriter(fw);

            try
            {
                fr=new FileReader("criteria.txt");
                br=new BufferedReader(fr);

                while((s=br.readLine())!=null)
                {
                    strtok=new StringTokenizer(s," ");
                    while(strtok.hasMoreTokens())
                    {
                        bw.write("\n"+strtok.nextToken());
                    }
                    br.close();
                }
            }
            catch(FileNotFoundException e)
            {
                System.out.println("File was not found!");
            }
            catch(IOException e)    
            {
                System.out.println("No file found!");
            }

            bw.close();
        }
        catch(FileNotFoundException e)
        {
            System.out.println("Error1!");
        }
        catch(IOException e)    
        {
            System.out.println("Error2!");
        }
    }   

    public static void main(String[] args) 
    {
        Test t=new Test();
    }
}
狗屎:

阅读完文件后,即while循环之后,需要关闭阅读器。当前,您在读取第一行后将其关闭,IOException: Stream closed当它尝试读取第二行时会导致显示“ ”。

改成:

while((s=br.readLine())!=null)
{
    strtok=new StringTokenizer(s," ");
    while(strtok.hasMoreTokens())
    {
        bw.write("\n"+strtok.nextToken());
    }
    //br.close(); <----- move this to outside the while loop
}
br.close();

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中同时读取和写入同一文件

读取和写入同一文件fstream

从 PowerShell 中的 Invoke-RestMethod 同时读取和写入同一文件

使用PrintWriter和DataOutputStream在Java中写入同一文件

如何使在同一管道中读取和写入同一文件始终“失败”?

如何从Flyway中的同一文件夹读取Java和SQL迁移

读取和写入同一文件-输出格式更改

如何使用spark(scala)读取和写入(更新)同一文件

如何异步写入和读取节点中的同一文件?

使用try-with-resources读取和写入同一文件

使用C ++同时读取和写入同一文件

在Python中的同一文件中写入列表和列表列表

Windows窗体c#在同一窗体上读取和写入同一文件错误?

Shellcheck抱怨我不应该在同一管道中读取和写入同一文件

如何在Java中两次读取同一文件?

线程1从文件读取,而线程2写入同一文件

从Excel模板读取数据并写入同一文件

Node.js同时读取流并将其写入同一文件

如何使用FFMPEG和C将音频和视频写入同一文件?

foreach%dopar%写入同一文件

从文件读取后写回同一文件

用awk和truncate写入同一文件

从与.jar文件位于同一文件夹中的文件读取

多次读取同一文件的Python

读取并附加到同一文件

正在读取同一文件夹中的文件-改进了吗?

是否可以从存在Azure功能的同一文件夹中读取文件

多个Java进程可以同时读取同一文件吗?

Java多个对象读取同一文件的不同部分