Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取要馈入数组的txt文件_Java - Fatal编程技术网

Java 读取要馈入数组的txt文件

Java 读取要馈入数组的txt文件,java,Java,在这里,用户输入1和0的列表。。。。因此,输入将为10001010。但是我希望它从文本文件中读取。。。我的文本文件input.txt也包含10001010。。。需要从控制台向coverDataArray数组提供与文件相同的字符串 我尝试了Datainput stream,但它引发了异常 " 您可以将文件对象而不是System.in传递给Scanner构造函数。请按如下所示进行尝试: String fileName = "input.txt"; File file = new File(fil

在这里,用户输入1和0的列表。。。。因此,输入将为10001010。但是我希望它从文本文件中读取。。。我的文本文件input.txt也包含10001010。。。需要从控制台向coverDataArray数组提供与文件相同的字符串

我尝试了Datainput stream,但它引发了异常

"

您可以将文件对象而不是System.in传递给Scanner构造函数。请按如下所示进行尝试:

String fileName = "input.txt";
File file = new File(fileName);
Scanner scanner = new Scanner(file);
String s = "";
while(scanner.hasNextLine()){
    s = scanner.nextLine();
    // your code. You can also use scanner.next() to read word by word instead of nextLine()
}
您的异常是由这样一个事实引起的,即您将达到长度-1,然后是长度-1+1,这就是长度,这将导致您的BoundsException阵列。这可以在这一行中看到:

covertDataArray[i] = Byte.parseByte(data1.substring( i, i+1));
在某一点上,i等于length-1,或字符串中的最后一个索引。然后尝试访问下一个不存在的元素

至于您的文件,您可以将文件对象传递到扫描仪中

范例

要么

File file = new File("yourfile.txt");
Scanner s = new Scanner(file);

您正在尝试使用Byte.parseByte作为解析二进制输入的方法,但这实际上不起作用,因为parseByte将尝试获取数字输入并将其解析为-128到127之间的数字。您应该使用不同的方法。

那么我应该将循环中的长度条件设置为什么?长度-1?否。将其更改为使用charAt而不是substring。在将文件传递给扫描仪后,我该怎么做?放在绳子上?你是怎么做的嗯?你确定?当我从控制台输入来自内存的相同字符串时,它工作得非常好,因此无法完全确定。在将文件传递给扫描仪后,我该怎么做?放在绳子上?你是怎么做的?编辑答案,添加适当的代码,以便从文件中读取。
Byte.parseByte(data1.substring( i, i+1));
covertDataArray[i] = Byte.parseByte(data1.substring( i, i+1));
File file = new File("yourfile.txt");
Scanner s = new Scanner(file);