ネットワーク フォルダーに書き込まれるテキスト ファイルがあり、ユーザーが jar ファイルをクリックしてテキスト ファイルを読み取り、並べ替え、並べ替えたファイルを同じフォルダーに出力できるようにしたいと考えています。InputStream
しかし、ファイルを読み込むための構文のフォーマットに問題があります。
FileReader
a の代わりにa を使用するとInputStreamReader
、次のコードは Eclipse で正常に動作しますが、jar から実行すると空が返されます。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();
}
}
}