我正在寫一個函數來獲取一個文本文件並計算它將行輸出到一個字符串數組時的行數。這樣做我有幾個例外,我需要注意。類函數有幾個變量,它們應該在整個函數中有一個範圍,但是當我在異常中的函數中寫入值時,return語句找不到它。我已經移動了聲明,沒有任何幫助讀取隱藏在java異常處理中的變量
返回的值「h5Files」「可能沒有被初始化」因爲我不知道數組會有多長時間,所以我無法將它初始化爲一定的長度。我這樣做的代碼中,我需要一種方法來告訴return語句,我現在有一個值
下面是代碼
public String[] ReadScanlist(String fileIn){
int i;
String directory ="c:\\data\\"; // "\" is an illegal character
System.out.println(directory);
int linereader = 0;
String h5Files[];
File fileToRead = new File(directory + fileIn);
System.out.println(fileToRead);
try {
FileInputStream fin = new FileInputStream(fileToRead); // open this file
}
catch(FileNotFoundException exc) {
System.out.println("File Not Found");
}
try{
//read bytes until EOF is detected
do {
FileReader fr = new FileReader(fileToRead);// Need to convert to reader
LineNumberReader lineToRead = new LineNumberReader(fr); // Use line number reader class
//
while (lineToRead.readLine() != null){
linereader++;
}
linereader = 0;
lineToRead.setLineNumber(0); //reset line number
h5Files = new String[linereader];
while (lineToRead.readLine() != null){
h5Files[linereader] = lineToRead.readLine(); // deposit string into array
linereader++;
}
return h5Files;
}
while(i !=-1); // When i = -1 the end of the file has been reached
}
catch(IOException exc) {
System.out.println("Error reading file.");
}
try{
FileInputStream fin = new FileInputStream(fileToRead);
fin.close(); // close the file
}
catch(IOException exc) {
System.out.println("Error Closing File");
}
return h5Files;
}
您可以使用的列出(例如ArrayList)的行而不是數組。你也重置你的h5Files數組0槽,所以會有一個IndexOutOfBoundException,我猜。 – peshkira
你有什麼期望'返回'有一個'Exception'並且你的初始化代碼還沒有運行?在最好的情況下,這將是'null' ... –
非常好的評論我會看看列表,我打算使用null作爲例外。謝謝,我將嘗試現在實施這些建議。 –