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