我有一個文本文件被寫入網絡文件夾,我希望我的用戶能夠單擊將在文本文件中讀取的jar文件,對其進行排序,以及將已排序的文件輸出到相同的文件夾。但我無法格式化InputStream
的語法來讀取文件。如何從jar中讀取外部文本文件
當我使用一個FileReader
代替InputStreamReader
下面的代碼在日食罰款,但是從罐子中運行時返回空的。當我將其更改爲InputStream
時,就像我的研究表明的那樣 - 我得到一個NullPointerException
,因爲它無法找到該文件。
我哪裏錯了? :)
public class sort {
/**
* @param args
*/
public static void main(String[] args) {
sort s = new sort();
ArrayList<String> farmRecords = new ArrayList<String>();
farmRecords = s.getRecords();
String testString = new String();
if(farmRecords.size() > 0){
//do some work to sort the file
}else{
testString = "it didn't really work";
}
writeThis(testString);
}
public ArrayList<String> getRecords(){
ArrayList<String> records = new ArrayList();
BufferedReader br;
InputStream recordsStream = this.getClass().getResourceAsStream("./input.IDX");
try {
String sCurrentLine;
InputStreamReader recordsStreamReader = new InputStreamReader(recordsStream);
br = new BufferedReader(recordsStreamReader);
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
return records;
}
private static void writeThis(String payload){
String filename = "./output.IDX";
try {
BufferedWriter fr = new BufferedWriter(new FileWriter(filename));
fr.write(payload);
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我嘗試使用FileReader這樣,但它寫出一個文件,說「它沒有真正的工作」(我沒有閱讀任何東西的默認通知)。 –
嘗試{ \t \t \t \t \t \t字符串sCurrentLine; \t \t \t br = new BufferedReader(new FileReader(「./ input.IDX」)); \t \t \t而((sCurrentLine = br.readLine())!= NULL){ \t \t \t \t的System.out.println(sCurrentLine); \t \t \t} \t \t \t br.close(); \t \t} catch(IOException e){ \t \t \t e.printStackTrace(); \t \t} –