【问题标题】:How to create an array whose size is equal to size of a file?如何创建一个大小等于文件大小的数组?
【发布时间】:2015-02-12 13:08:25
【问题描述】:

如何创建一个大小等于文件大小的数组?文件名作为参数传递给main

public static void main(String[] args){
    File text = new File(args[0]); //file input
    Scanner input = null;
    try {
        input = new Scanner(text);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    int[] A = new int[??????]; //what should be size 2 match file    
}

【问题讨论】:

  • 为什么是int 数组?你想用它做什么?
  • 当您输入问题时,右侧有一个橙色的大如何格式化框,其中包含格式化提示列表,包括如何格式化代码。值得一读。还有一个完整的格式化工具工具栏。还有一个 [?] 按钮来提供帮助。以及文本框下方的预览区域,您可以在发布之前查看您的问题。请利用这些东西,它们的存在是有原因的。
  • @fge
    while(input.hasNextInt()){
    for(int i = 0;i A[i ]= input.nextInt();
    if(A[i]%2 == 0)System.out.println("1");
    else System.out.println("0") ;
    }
    我想在这段代码中使用它,但是当我使用任意大小的数组 A 运行这段代码时,如果文件中的条目数小于 A 的大小,那么它抛出“没有这样的元素异常”所以我想如果我可以让文件的大小成为 A 的大小,它不会发生,对吧?
  • 不要在评论中发布大代码。它格式错误,很可能应该是问题本身的一部分。在您的问题下方使用edit 选项将其放入您的问题中。另外不要忘记使用编辑器工具栏中的{} 按钮来格式化您的代码。

标签: java arrays file size


【解决方案1】:

使用 java.nio.file:

final Path path = Paths.get(args[0]);
// use Files.size(path)

请注意,您可以直接将常规文件的内容读入字节数组:

final byte[] content = Files.readAllBytes(path);

【讨论】:

    【解决方案2】:

    尝试使用 length() 来获取文件的长度。

    text.length()
    

    在你的情况下..

    【讨论】:

    • 它会以字节为单位返回长度,但整数的大小是字节的4倍,因此创建的数组不会与文件大小相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    相关资源
    最近更新 更多