java - Java,无法从文件中读取
问题描述
每当我输入名称时,就会创建文件并且行在那里,但是当我使用 display 方法时,它会吐出那个错误,我不确定我的问题出在哪里,而且我对 Java 有点陌生。我在另一个班级有一个方法来保存行,但我认为这不是我的问题所在,而且我有点卡住了,任何帮助将不胜感激。
package X;
import java.util.Scanner;
import java.io.*;
public class FileDisplay {
String filename;
public FileDisplay(String name) {name = filename;}
public void display() throws IOException {
File file = new File(filename);
Scanner inputFile = new Scanner(file);
while (inputFile.hasNext()) {
String str = inputFile.nextLine();
System.out.println(str);
}
inputFile.close();
}
}
我运行了代码,每次它吐出这个错误:
Exception in thread "main" java.lang.NullPointerException
at java.base/java.io.File.<init>(File.java:276)
at ES1036a.Lab6.FileDisplay.display(FileDisplay.java:12)
at ES1036a.Lab6.FilesDemo.main(FilesDemo.java:27)
这是演示类:
package X;
import java.util.Scanner;
import java.io.*;
public class FilesDemo {
public static void main(String[] args) throws IOException {
String filename = "lines.txt";
Scanner keyboard = new Scanner(System.in);
System.out.println("What's the filename?");
filename = keyboard.nextLine();
FileSave FilesDemo = new FileSave(filename);
FilesDemo.save("1-Lorem ipsum dolor sit amet\n" +
"2-Consectetuer adipiscing elit\n" +
"3-Sed diam nonummy nibh euismod tincidunt\n" +
"4-Ut wisi enim ad minim veniam\n" +
"5-Quis nostrud exerci tation ullamcorper\n" +
"6-Suscipit lobortis nisl ut aliquip ex ea commodo consequat\n" +
"7-Duis autem vel eum iriure dolor in hendrerit\n" +
"8-Vel illum dolore eu feugiat nulla facilisis at vero eros");
FileDisplay FilesDemo2 = new FileDisplay(filename);
FilesDemo2.display();
}
}
解决方案
在 FileDisplay 的构造函数中,您未分配名为“filenamed”的属性,以这种方式更正它:
public FileDisplay(String name) {
/* wrong
the parameter String "name" is reassigned but you need
to assing the class attribute "filneame", this line is wrong:
name = filename;
*/
// correct
filename = name;
}
推荐阅读
- javascript - React JS:相同 JSON 数据的两个过滤器
- r - 将 dsG 变成 dsC 矩阵
- google-cloud-platform - 有没有办法在 GCP 云存储中托管一个公共静态网站并使用用户名和密码保护它?
- mysql - xamarin mysql 命令显示索引超出了数组的范围
- javascript - 如果不以“!test”开头,请删除 Discord 消息
- android - Recyclerview 没有附加适配器;跳过布局(Kotlin)
- r - 输出表 - 加权 t 检验
- excel - 如何使 Excel Power Query 根据工作表中单元格的值过滤数据?
- amazon-web-services - 如何在 AWS Elastic Beanstalk 上部署的 Docker Multi Container 上扩展每个容器
- php - 同步基本站点登录和 Wordpress 登录以进行帐户管理