如何使用 FileInputStream 从另一个 class 访问输入文件?
How to use FileInputStream for accessing an input file from another class?
这里有两个 java classes:
获取输入文件:
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 异常。
我尝试使用字符串名称,但无法使用吸气剂从输入文件 class 获取字符串名称,但我失败了。有人可以告诉我该怎么做吗?
非常感谢。
您可以将文件传递给第二个 class:
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
class 可能如下所示:
public class PdfParse {
public static void parse(File inputFile) throws Exception {
FileInputStream inputstream = new FileInputStream(inputFile);
...
}
}
您可以在 Inputfile
class
中定义 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
class
的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();
.........
}
}
希望这对您有所帮助。
这里有两个 java classes:
获取输入文件:
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 异常。 我尝试使用字符串名称,但无法使用吸气剂从输入文件 class 获取字符串名称,但我失败了。有人可以告诉我该怎么做吗?
非常感谢。
您可以将文件传递给第二个 class:
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
class 可能如下所示:
public class PdfParse {
public static void parse(File inputFile) throws Exception {
FileInputStream inputstream = new FileInputStream(inputFile);
...
}
}
您可以在 Inputfile
class
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
class
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();
.........
}
}
希望这对您有所帮助。