我在运行CMD中的代码时遇到问题
public class Testing
{
public static void main(String args[]) throws TestingFormatException, IOException
{
Scanner scanner = new Scanner(System.in);
String filename = scanner.nextLine();
File input = new File(filename);
FileReader fileInput = new FileReader(input);
TestingIo file = new TestingReaderWriter();
file.read(fileInput);
}
}
类和java文件都在同一目录中
C:\testing\Testing.java
C:\testing\Testing.class
C:\testing\test.txt
以下是我输入的以下命令:
C:\testing> javac Testing.java
C:\testing> java Testing > test.txt
它告诉我这个错误
Exception in thread "main" java.io.FileNotFoundException: # Show contents
(The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileReader.<init>(FileReader.java:55)
at Mipsim.main(Mipsim.java:22)
但是当我键入此命令时没有错误:
C:\testing> javac Testing.java
C:\testing> java Testing
C:\testing> test.txt
CLASSPATH is set to .;C:\Program Files (x86)\Java\jdk1.6.0_24\bin
Test.txt
#显示内容 TEST1 TEST2
我可以知道如何解决这个问题吗?
答案 0 :(得分:2)
假设您执行的命令实际上是
java Testing < test.txt
这基本上意味着:执行Testing
类,并且在从System.in
读取时,不要读取用户输入的内容,而是读取test.txt文件中的内容。
由于test.text文件包含# Show contents
,并且由于您的类从System.in中读取一行并将其视为文件名,因此它会有效地尝试从名为# Show contents
的文件中读取,它不存在,因此是例外。