我需要使用Java从文本文件中读取数据,目前我正在使用:
public void read() throws Exception
{
FileInputStream in = null;
try
{
Scanner input = new Scanner("dataset.txt");
File inputFile = new File(fileName.nextLine());
in = new FileInputStream(inputFile);
}
catch ( Exception e)
{
System.out.println(e);
}
}
但是,我希望让用户可以选择从dataset.txt和data.txt中读取数据,所以我尝试了这样做:
public void read(int name) throws Exception
{
FileInputStream in = null;
try
{
File inpu = new File(name.nextLine());
in = new FileInputStream(input);
}
catch ( Exception e)
{
System.out.println(e);
}
但是我收到一个错误:int无法解除引用
答案 0 :(得分:0)
fileName
的类型为int
。你不能从原始类型中调用方法。
答案 1 :(得分:0)
由于您只有两个不同的文件,为什么不使用if
语句查看用户想要打开的文件,然后将该文件提供给inputFile
,您可以传递给in
。
if (fileName == 1) {
inputFile = new File("dataset.txt");
} else if (fileName == 2) {
inputFile = new File("data.txt");
}
答案 2 :(得分:0)
如果“name”输入变量是用户选择的值,则需要使用条件根据用户决定选择相应的文件名
示例:
public void read(int name) throws Exception {
FileInputStream in = null;
try {
// File selection depending on user number selection
String fileName="dataSet.txt";
if(name == 2){
fileName ="otherFileName.txt";
}
// InputStream creation
File input = new File(fileName);
in = new FileInputStream(input);
// Your read operations here
} catch ( Exception e) {
System.out.println(e);
}
}
在此示例中,如果用户按2,则使用“otherFileName.txt”。 否则使用“dataSet.txt”。
al文件也没有路径。这些意味着需要位于应用程序的启动路径中。
答案 3 :(得分:0)
首先你的代码有很多错误。我想如果你在控制台上显示这一行
System.out.print("Please choose a dataset (1) dataset.txt , (2)data.txt : ");
用户的输入位于int
,您正在传递fileName.nextLine()
,这会导致错误
试试这个:
Scanner scan=new Scanner(System.in));
fileName="";
System.out.print("Please choose a dataset (1) dataset.txt , (2)data.txt : ");
int input = scan.nextInt();
if(input==1){
fileName="dataset.txt";
}
if(input==2){
fileName="data.txt";
}
File inputFile=new File(fileName));
... .