Java 意外的FileNotFoundException

Java 意外的FileNotFoundException,java,eclipse,filenotfoundexception,Java,Eclipse,Filenotfoundexception,我已经学习Java大约一个月了,目前正在学习Java的I/O,但我遇到了一些问题。下面是一个简单的玩具代码来练习Inputstream import java.io.*; public class IOTest{ public static void main(String[] args) throws IOException{ InputStream in; in = new FileInputStream(args[0]); int total = 0; wh

我已经学习Java大约一个月了,目前正在学习Java的I/O,但我遇到了一些问题。下面是一个简单的玩具代码来练习Inputstream

import java.io.*;

public class IOTest{
   public static void main(String[] args) throws IOException{
   InputStream in;
   in = new FileInputStream(args[0]);
   int total = 0;
   while (in.read() != -1)
   total++;
   System.out.println(total + " bytes");
   }
}
上面的代码可以编译。这段代码的目的是简单地计算参数中的字节数。但是,当我使用参数运行编译后的代码时,例如:

java IOTest firstTrial 
系统发出以下异常消息:

Exception in thread "main" java.io.FileNotFoundException: firstTrial <The system 
cannot find the file specified>
       at java.io.FileInputStream.open(Native Method)
       at java.io.FileInputStream.<init><Unknown Source>
       at java.io.FileInputStream.<init><Unknown Source>
       at IOTest.main<IOTest.java:8>
线程“main”java.io.FileNotFoundException中的异常:firstTrial 在java.io.FileInputStream.open(本机方法) 位于java.io.FileInputStream。 位于java.io.FileInputStream。 在万豪酒店 请帮助指出异常是如何引发的


另外一个问题是我正在使用Eclipse进行java编程。Eclipse for Java中输入字符的结尾是什么?谢谢

您没有在阅读文件:

java.io.FileNotFoundException: firstTrial <The system 
cannot find the file specified>
java.io.FileNotFoundException:firstTrial

将一些完整的文件路径作为参数,您的程序将包含字节。

似乎您希望将参数字符串本身作为
输入流来读取,
但是
文件输入流
的工作方式是,您传递的
字符串
不是要读取的数据,而是要打开和读取的文件名

但是,可以将字符串本身作为数据读取。如果您想在Java中使用
Reader
API,或者如果您想以
InputStream
的形式读取原始字节,那么您也可以使用
StringReader来实现。(但您需要指定字符编码。在本例中,我将其指定为“UTF-8”。)


请注意,我从字符串中获取字节,然后使用
ByteArrayInputStream
而不是
FileInputStream
来读取它们。我做了另一个改变,那就是在
while
循环体周围放上大括号。我更喜欢在一行上有循环,或者,更好的是,在主体周围放上大括号,以使循环的范围更清晰(并可能避免错误)。

Ctrl+D用于EOF/end of INPUTPUT firstTrial文件存在的地方?对不起,可能我没有理解。我试图在代码运行期间读取参数,并计算参数中的字节数。在上面的示例中,firtTrial是我在运行IOTest代码期间输入的参数。
import java.io.*;

public class IOTest {
    public static void main(String[] args) throws IOException {
        byte[] bytes = args[0].getBytes("UTF-8");
        InputStream in = new ByteArrayInputStream(bytes);
        int total = 0;
        while (in.read() != -1) {
            total++;
        }
        System.out.println(total + " bytes");
    }
}