2017-04-08 168 views
-1

这是我第一次发布。我至少在一周内一直在寻找我的问题的答案。我有一本适合学校的书,它应该告诉我我所知道的一切。但对于这个特定的问题,我找不到答案。我正在使用Dr.Java上学,每次按照我的书籍说明打开和阅读文件,我都会收到一些错误信息。我已经通过这本书编写了确切的方式来完成此操作,但它仍然显示错误,我不确定问题所在。我将发布我拥有的所有代码,我不需要所有的帮助,只需要其中的一部分就可以了解其余部分。任何帮助将不胜感激。打开文件并阅读java文件

import java.io.*; 
import java.util.Scanner; 

public class Maximum 
{ 
    public static void main (String[]args) throws IOException 
    { 
    Scanner keyboard = new Scanner(System.in); 
    String filename; 

    System.out.println("Please enter the file name."); 
    filename = keyboard.nextLine();  

    int maximum = ReadAndFindMax(filename); 

    System.out.println("The maximum number in the file is: " + maximum); 
    } 

    public static int ReadAndFindMax(String filename) throws IOException 
    { 
     File file = new File(filename); 
     Scanner inputFile = new Scanner(file); 
     int number, max; 
     while (inputFile.hasNext()) 
     { 
     number = inputFile.nextInt(); 
     if (number > max) 
      number = max; 
     } 

     inputFile.close(); 
     return max; 

    } 



    } 
+1

你得到了什么错误? –

+3

*它仍然显示错误,我不确定问题是什么*:如果我们能够读取错误消息,那么知道问题是什么会更容易。 –

+0

您需要在将其与数字进行比较之前初始化max。附注:if后面的行被反转。 – 2017-04-08 15:30:36

回答

1

你需要初始化你int值即max,所以真正使用它的原因是什么,如果inputFile.hasNext()回报false再想想前值初始化值0ReadAndFindMax方法return

int number, max=0; 

另外,我建议你严格遵循Java命名标准,这样的代码可以很容易地读取你的命名开始用大写的方法名。

+0

'number'不必被初始化,因为它的值在被比较之前被设置。 –