Java 为什么可以';我不能从文件中读取字符串吗?
代码应该从文件中读取字符串数组,然后将其打印出来。我不确定代码出了什么问题Java 为什么可以';我不能从文件中读取字符串吗?,java,string,file-io,java.util.scanner,Java,String,File Io,Java.util.scanner,代码应该从文件中读取字符串数组,然后将其打印出来。我不确定代码出了什么问题 import java.io.File; import java.io.IOException; import java.util.Scanner; public class program2 { public static void main(String[] args) throws IOException { //PriorityQueue<String> q = new P
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class program2 {
public static void main(String[] args) throws IOException {
//PriorityQueue<String> q = new PriorityQueue<String>();
//file that contains strings
File file = new File("infix.txt");
Scanner scnf = new Scanner(file);
// array count
int arycnt = 0;
// gets the count of the array in the file
while(scnf.hasNextLine()){
arycnt++;
scnf.next();
}
// creates array
String[] letter = new String[arycnt];
//reads in array from file
Scanner scnf2 = new Scanner(file);
for(int i = 0; i<arycnt ;i++){
letter[i] = scnf2.next();
}
// suppose to print all of the array
for (int i = 0;i < letter.length;i++){
System.out.println(letter[i]);
}
}
}
导入java.io.File;
导入java.io.IOException;
导入java.util.Scanner;
公共课程2{
公共静态void main(字符串[]args)引发IOException{
//PriorityQueue q=新的PriorityQueue();
//包含字符串的文件
File File=新文件(“infix.txt”);
扫描仪scnf=新扫描仪(文件);
//数组计数
int-arycnt=0;
//获取文件中数组的计数
while(scnf.hasNextLine()){
arycnt++;
scnf.next();
}
//创建数组
字符串[]字母=新字符串[arycnt];
//从文件中读取数组
扫描仪scnf2=新扫描仪(文件);
对于(int i=0;i您混淆了nextLine
和next
。将您的hasNextLine()
替换为hasNextLine()
,您应该会没事。或将next()
替换为nextLine()
,这取决于文件中的“字符串”是各自在自己的行上,还是“标记”由空格分隔。您从未关闭两个扫描仪
对象,因此您正在泄漏资源。我还建议使用数组列表
而不是字符串[]
,这样您就不必读取文件两次。