【问题标题】:How can i find maximum byte in file?我怎样才能找到文件中的最大字节?
【发布时间】:2014-04-11 22:31:50
【问题描述】:

所以基本上我有文件 C:/test.txt,我得到的输出 (55) 不正确,我想在该文件中找到最大字节,有人可以帮我理解我做错了什么,或者我的代码有错误吗?

public static void main(String[] args) throws Exception
            {
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
              String filName = bufferedReader.readLine();
                int max;
                FileInputStream fileReader = new FileInputStream(filName);

                max = fileReader.read();
                while (fileReader.available() > 0)
                {
                    if (max < fileReader.read())
                    {
                        max = fileReader.read();
                    }
                }
                fileReader.close();
                System.out.println(max);

            }
        }

【问题讨论】:

  • Java? C#?视觉基础?为您的标签添加一个。
  • 也许是该数据的样本或正确的结果?我的水晶球今天还不清楚。
  • 出了什么问题?错误答案、异常、编译时错误、硬盘重新格式化等

标签: java file-io byte fileinputstream


【解决方案1】:

在这里你读取位置 N 的字节,如果它大于你当前的最大值,你将 max 替换为位置 N + 1 的字节:

if (max < fileReader.read())
{
     max = fileReader.read();
}

你知道这怎么行吗?您需要保存fileReader.read() 的结果,以便您可以比较然后使用它:

int current = fileReader.read();
if (current > max)
{
    max = current;
}

另外,根据这条评论:

数据为 1 2 3 4 5

您希望从文件中读取整数,而实际上您正在读取原始字节/字符值。如果文件是二进制文件,则需要读取整数大小的块。如果文件是文本,则需要从中解析出整数。

【讨论】:

    猜你喜欢
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 2020-11-22
    相关资源
    最近更新 更多