java - 在 java 中使用 Formatter 写入和读取文件时遇到问题

标签 java

在这里,我可以在文件上写字。但是当我试图读取我的文件时,它给了我“MyFile.txt”,但我的输出应该是“我 20 岁” 我的代码有什么问题?

import java.util.*;
class main{
    public static void main(String[] args){

        Formatter fr;

        try{
            fr = new Formatter("MyFile.txt");

            fr.format("I'm %d",20);

            fr.close();

        }catch (Exception e){
            System.out.println("Error");
        }

        try {
            Scanner sc = new Scanner("MyFile.txt");
            while (sc.hasNext()){
                System.out.println(sc.next());
            }
             sc.close();
        }catch (Exception e){
            System.out.println("Error");
        }

    }
}

最佳答案

您正在将字符串文字传递给 Scanner 构造函数。

Scanner sc = new Scanner("MyFile.txt");

那是 the constructor扫描字符串本身。

你想传递给它一个 File 对象:

Scanner sc = new Scanner(new File("MyFile.txt"));

注意:按照您的方式使用 Formatter 写入文件是可行的,因为 Formatter采用 String 的构造函数假定该字符串是一个文件名。 Scanner 构造函数假定字符串本身是输入,而不是文件名。

关于java - 在 java 中使用 Formatter 写入和读取文件时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59471993/

相关文章:

java - 没有命名空间的 XML。针对多个 XSD 之一进行验证

java - Spring Task Scheduler 与 Java 的 ScheduledExecutorService

java - for-each 不适用于表达式类型所需的数组或 java.lang.iterable

java - 错误 java.lang.NoClassDefFoundError : com/mongodb/MongoClient

java - Java 中的查询字符串操作

java - 什么时候打开和关闭数据库是值得推荐的?

java - 使用keytool获取证书的MD5签名

java - 标识符突出显示和跳转停止工作

java - hibernate 搜索中的通配符查询

java - 如何捕获游戏中的配置错误! 2.1.5 避免显示默认错误信息?