所以我基本上有文件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);
}
}
这里读取位置N处的字节,如果它大于当前的最大值,则用位置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
您期望从文件中读取整数,而实际上您正在读取原始字节/字符值。如果文件是二进制的,则需要读取整数大小的块。如果文件是文本,则需要解析其中的整数。