私がやろうとしているのは、テキスト ファイル (変更されない) をプログラムの JAR 内に保存して、読み取れるようにすることです。テキスト ファイルの目的は、クラスの 1 つによって読み込まれ、テキスト ファイルの内容が .csv ファイルに追加されることJEditorPane
です。ファイルは基本的にチュートリアルであり、ユーザーがチュートリアルを読むオプションをクリックすると、ファイルの内容が読み込まれ、ポップアップする新しいウィンドウに表示されます。
GUI部分はダウンしていますが、アクセスできるようにファイルをJARに保存する限り、私は途方に暮れています。willを使用して動作することを読みましたInputStream
が、いくつかのことを試した後、まだ動作していません。
また、GUI ウィンドウのアイコンとして使用するイメージを JAR に保存します。これは、次の方法で実現されます。
private Image icon = new ImageIcon(getClass()
.getResource("resources/cricket.jpg")).getImage();
ただし、ファイルを取得しようとすると、これは機能しません。
private File file = new File(getClass.getResource("resources/howto.txt"));
現在の私のクラスは次のとおりです。
public class HowToScreen extends JFrame{
/**
*
*/
private static final long serialVersionUID = -3760362453964229085L;
private JEditorPane howtoScreen = new JEditorPane("text/html", "");
private Image icon = new ImageIcon(getClass().getResource("resources/cricket.jpg")).getImage();
private BufferedReader txtReader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/resources/howto.txt")));
public HowToScreen(){
setSize(400,300);
setLocation(500,200);
setTitle("Daily Text Tutorial");
setIconImage(icon);
howtoScreen.setEditable(false);
howtoScreen.setText(importFileStream());
add(howtoScreen);
setVisible(true);
}
public String importFile(){
String text = "";
File file = new File("howto.txt");
Scanner in = null;
try {
in = new Scanner(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
while(in.hasNext()){
text += in.nextLine();
}
in.close();
return text;
}
public String importFileStream(){
String text = "";
Scanner in = new Scanner(txtReader);
while(in.hasNext()){
text += in.nextLine();
}
in.close();
return text;
}
}
importFile
チュートリアル ファイルを JAR 内に保存することを優先して削除されているため、このメソッドは無視してください。これにより、プログラムが使用できるスペースが制限されているため、プログラムは完全に自己完結型になります。
編集: 以下の提案をすべて試した後、JAR がテキスト ファイルをパッケージ化しているかどうかを確認しましたが、そうではありません。7zip で JAR を開くと、リソース フォルダーにアイコンに使用する画像が表示されますが、テキスト ファイルは表示されません。