如何使用FileInputStream从另一个类访问输入文件



这里有两个java类:

获取输入文件:

public class Inputfile {    
public static void main(String[] args) throws Exception  {
    Scanner sc = new Scanner(System.in);
    Scanner input = null;
    boolean isFile = false;
    while (isFile == false){   
        System.out.print("Input file name? ");
        String fileName = sc.next();
        File inputFile = new File(fileName);
        if (inputFile.exists()){
            input = new Scanner(inputFile);
            isFile = true;
        }            
    } 

解析输入文件:

public class PdfParse {
public static void main(final String[] args) throws Exception  {

Inputfile inputfile = new Inputfile();
 String fileName;
 fileName =  inputfile.toString();      
  FileInputStream inputstream = new FileInputStream(new File("fileName"));

ParseContext pcontext = new ParseContext();
  .........   
  } 

我得到的只是文件名的FileNotfound异常。我尝试使用字符串名称,但无法使用getters从inputfile类中获取字符串名称,但是失败了。有人能告诉我怎么做吗?

非常感谢。

您可以在Inputfile类中定义getFileName方法

 public class Inputfile {    
      public static String getFileName() throws Exception  {
        Scanner sc = new Scanner(System.in);
        String fileName = null;
        boolean isFile = false;
        while (!isFile){   
            System.out.print("Input file name? ");
            fileName = sc.next();
            File inputFile = new File(fileName);
            if (inputFile.exists()){
                isFile = true;
            }            
        } 
        return fileName;
    }
}

然后您可以在PdfParse类的main方法中使用上面定义的方法

  public class PdfParse {
      public static void main(final String[] args) throws Exception  {

        String fileName = InputFile.getFileName();
        FileInputStream inputstream = new FileInputStream(new File(fileName));

         ParseContext pcontext = new ParseContext();
         .........   
      } 
  }

希望这能有所帮助。

您可以将文件传递给第二个类:

Scanner sc = new Scanner(System.in);
File inputFile = null;
while (inputFile == null){   
    System.out.print("Input file name? ");
    String fileName = sc.next();
    inputFile = new File(fileName);
    if (!inputFile.exists()){
        inputFile = null;
    }            
}
PdfParse.parse(input); // <-- Pass file to parser

那么你的PdfParse类可能是这样的:

public class PdfParse {
    public static void parse(File inputFile) throws Exception {
        FileInputStream inputstream = new FileInputStream(inputFile);
        ...
    }
} 

相关内容

  • 没有找到相关文章