java - 试图将文件读入数组java

标签 java

我正在尝试将文件读入数组,但它似乎在我的代码中不起作用

public static void main(String[] args) throws FileNotFoundException {
    Scanner input = new Scanner(new File("Sales.txt"));
    int lineCount = 0;
    String line = "";
    while (input.hasNextLine()) {
        line = input.nextLine();   // read one line 
        lineCount++; //count line to find out how big array must be
        // System.out.println(line);
    }

    String[] fileinput = new String[lineCount]; //create array to store file in


    while (input.hasNextLine()) {
        int i = 0;
        fileinput[i] = input.nextLine();
        System.out.println(fileinput[i]);
        i++;

    }

我正在使用第一部分找出有多少行,这样我就可以将我的数组指定为该大小,然后尝试将每一行放入第二部分的数组中。

但是每次它似乎不想在第一次使用该文件后再次读取或使用该文件时,它总是返回 null。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

您需要将 i 的声明移到 while 循环之外,然后重新开始从头读取文件。

input = new Scanner(new File("Sales.txt"));
int i = 0,
while (input.hasNextLine()) 
        fileinput[i] = input.nextLine();
        System.out.println(fileinput[i]);
        i++;
}

您还可以使用 List 来避免遍历文件两次并使用 readAllLines (如果您使用的是 Java 7)。

File f = new File("Sales.txt");
Charset ch = //encoding of the file
List<String> allLines = Files.readAllLines(f.toPath(), ch);

关于java - 试图将文件读入数组java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23042295/

相关文章:

java - 变量和运算符在赋值中似乎被忽略。什么可以使这一切发生?

java - 如何在 solr schema.xml 中创建一个新的 FieldType

java.lang.NoClassDefFoundError : javax/faces/context/FacesContext

java - glassfish servlet : how to know the referer url?(如果可能)

java - 为什么 PathMatcher 不匹配路径?

java - 更新 ComboBox 的项目后发生 NullPointerException

java - WorkbookFactory.create(inputStream)

java - JAXB:如何在解码 XML 文档期间忽略命名空间?

java - Android Studio 通过不同的 Activity 计时

java - android是否有任何全局接口(interface)记录应用程序中的每个异常?