为了账号安全,请及时绑定邮箱和手机立即绑定

即使文件中有文本,BufferedReader readline 也会读取 null

即使文件中有文本,BufferedReader readline 也会读取 null

FFIVE 2023-11-10 16:37:37
基本上,我正在尝试创建一个简单的数据库应用程序,并在每个学生条目中自动生成 ID。程序读取前一个最高的 ID 并加 1 以创建下一个。然而,即使文本文档中有数字,BufferedReader 在使用 readLine 时仍然返回 null我检查了我的 int 解析是否是问题,但我通过将 readline 保存到变量然后打印它,意识到这是 bufferedreader,我得到的结果为 null。我还尝试使用扫描仪文件读取,但这不起作用,我检查了所有相关的类和方法以尝试找出答案。此代码创建 topsid 文件并写入 0 来初始化它,该文件被读取为 nullif(MiscProcesses.firstStartup() == false) //method that checks if these files exist{                File topsid = new File("topsid.txt");                FileWriter fw = new FileWriter(topsid);                fw.write("0");                fw.close();}此代码负责读取文件,从而找到更高的 id 值Student (String[] studata) {            //checking highest SID            File topsid = new File("topsid.txt");            FileWriter fw = new FileWriter(topsid);            FileReader fr = new FileReader(topsid);            BufferedReader br = new BufferedReader(fr);            //checking high sid file and getting new sid            String test = br.readLine();            System.out.println(test+" <test");   <this ends up printing null            int sid;            sid = Integer.parseInt(test)+1;            System.out.println(sid);            fw.write(Integer.toString(sid));            this.id = sid;            ...            br.close();            fr.close();            fw.close();        }当我在第二个代码运行之前打开 topsid 文件时,一切都很好,并且文件包含零。我希望 bufferedreader 读取“0”,但它只是读取 null,当我在代码运行后打开文件时,里面的数据会被删除。
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

     FileWriter fw = new FileWriter(topsid);

        FileReader fr = new FileReader(topsid);

        BufferedReader br = new BufferedReader(fr);

创建FileWriter这样的文件会在您读取其内容之前破坏现有文件。


如果您想从文件中读取某些内容,然后写回某些内容,请在读取FileWriter 后创建 。


查看完整回答
反对 回复 2023-11-10
  • 1 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信