从文本文件中读取

时间:2014-12-11 10:15:00

标签: java file

我需要使用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无法解除引用

4 个答案:

答案 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));
... .