我正在寫一個java代碼來通過一個.sfo文件(SQL和Fortran的組合)並刪除一組字符,只要它們出現在文件中。我在64位Windows 7機器上使用Eclipse,如果這有什麼區別的話。該代碼正在做我想做的事情,刪除字符塊以及其他內容,但最後,在給我輸出之後,它顯示 「錯誤:沒有這樣的文件或目錄。」 我不知道爲什麼;我所引用的唯一外部文件是前面提到的.sfo。該文件存在,並且我在代碼中指定的文件路徑是正確的。我有權讀取和寫入文件。 這裏是我的代碼(更多或更少;很多是重複的,所以我就砍了一些不重要的東西):Java FileInputStream錯誤:「沒有這樣的文件或目錄」
絕對路徑是
C:/Users/frencke/p4/frencke_LOHEPCE00294173/pcs/main/lib/gp/file.sfo.
是的,我有充分的文件權限。
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class StringSplit {
public static void main(String args[]) {
try {
ArrayList<String> arr = new ArrayList<String>();
// Here I initialized a bunch of ArrayLists; nothing relevant
ArrayList<String> arr26 = new ArrayList<String>();
FileInputStream fstream = new FileInputStream(
"C:/Users/.../file.sfo");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
while ((strLine = br.readLine()) != null) {
arr.add(strLine);
String[] temp;
String delimiter = "\\s+\\s+\\s+\\s+\\s+&\\s+";
temp = strLine.split(delimiter);
for (int i = 0; i < temp.length; i++)
arr2.add(temp[i]);
// Here I did all of the removal of the various blocks of text
String[] temp27;
String delimiter27 = "\t9";
String strLine27 = null;
for (int i = 0; i < temp26.length; i++)
strLine27 = temp26[i];
temp27 = strLine27.split(delimiter27);
for (int i = 0; i < temp27.length; i++)
System.out.println(temp27[i]);
in.close();
}
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
}
同樣,我得到了錯誤的信息是: 「錯誤:沒有這樣的文件或目錄。」如果有人知道這是爲什麼發生,我很樂意聽到它;謝謝!
file.sfo的絕對路徑是什麼? –
該文件是否具有讀取權限? –
對不起,如果我不清楚; 「...」只是顯示了我在本網站上爲了閱讀目的而剪下的大部分文件路徑。絕對路徑在代碼中是完整的(它是C:/Users/frencke/p4/frencke_LOHEPCE00294173/pcs/main/lib/gp/file.sfo)。是的,我對該文件擁有完全權限。 –