在这里,我可以在文件上写字。但是当我试图读取我的文件时,它给了我“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/