有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将文本文件内容逐行存储到数组中

总之,我现在面临的问题是不知道如何将文本文件中的内容存储到数组中。 情况如下,文本文件内容:

abc1
xyz2
rxy3

我希望将它们逐行存储到数组中,这可能吗?我所期望的是:

arr[0] = abc1
arr[1] = xyz2
arr[2] = rxy3

我尝试过这样的事情,但似乎不适合我。如果有人能帮助我,真的非常感谢

代码是:

BufferedReader in = new BufferedReader(new FileReader("path/of/text"));
        String str;

        while((str = in.readLine()) != null){
            String[] arr = str.split(" ");
            for(int i=0 ; i<str.length() ; i++){
                arr[i] = in.readLine();
            }
        }

共 (6) 个答案

  1. # 1 楼答案

    JAVA 8:

    Files.lines(new File("/home/abdennour/path/to/file.txt").toPath()).collect(Collectors.toList());
    
  2. # 2 楼答案

    最简单的解决方案:

    List<String> list = Files.readAllLines(Paths.get("path/of/text"), StandardCharsets.UTF_8);
    String[] a = list.toArray(new String[list.size()]); 
    

    注意java。尼奥。文件文件从1.7开始

  3. # 3 楼答案

    你需要为你的案子做些类似的事情:-

    int i = 0;
    while((str = in.readLine()) != null){
        arr[i] = str;
        i++;
    }
    

    但是请注意arr应该根据文件中的条目数正确声明

    建议:-改用List(查看@Kevin Bowersox帖子)

  4. # 4 楼答案

    我建议使用ArrayList,它可以处理动态大小调整,而数组需要预先定义大小,您可能不知道。您始终可以将列表转换回数组

    BufferedReader in = new BufferedReader(new FileReader("path/of/text"));
    String str;
    
    List<String> list = new ArrayList<String>();
    while((str = in.readLine()) != null){
        list.add(str);
    }
    
    String[] stringArr = list.toArray(new String[0]);
    
  5. # 5 楼答案

    只需使用Apache Commons IO

    List<String> lines = IOUtils.readLines(new FileInputStream("path/of/text"));
    
  6. # 6 楼答案

    这应该是可行的,因为它使用列表,因为您不知道文件中会有多少行,而且以后可能会更改

    BufferedReader in = new BufferedReader(new FileReader("path/of/text"));
    String str=null;
    ArrayList<String> lines = new ArrayList<String>();
    while((str = in.readLine()) != null){
        lines.add(str);
    }
    String[] linesArray = lines.toArray(new String[lines.size()]);