これはまさにあなたが探しているものだと思います - http://cs.saddleback.edu/rwatkins/CS4B/Crypto/FileEncryptor.html
コードは十分に文書化されていますが、質問がある場合は質問してください。答えようとします
これは、暗号化を使用して行う最も簡単な方法です (おそらく)。これは間違いなく良い考えです。ただし、テキストファイルへの書き込みと読み取りの単純な部分は、次の方法で実行できます。
39: filename = "clear.txt";
40:
41: // Password must be at least 8 characters (bytes) long
42:
43: String password = "super_secret";
44:
46: outFile = new FileOutputStream(filename);
80: outFile.write(password);
この読み取り方法はより複雑ですが、説明しようと思います
private static String readFileAsString(String filePath) throws java.io.IOException{
byte[] buffer = new byte[(int) new File(filePath).length()];
BufferedInputStream f = null;
try {
f = new BufferedInputStream(new FileInputStream(filePath));
f.read(buffer);
} finally {
if (f != null) try { f.close(); } catch (IOException ignored) { }
}
return new String(buffer);
}
基本的に byte[] は生の 1 と 0 の配列です (それが何かわからない場合はググってください)。ファイルのすべての 1 と 0 を配列に入れます (つまり、ファイルと同じ長さです。すなわち (int) new File(filePath).length()) 次に、fileinputstream がこれらの 1 と 0 を変換するすべてのすばらしい魔法を実行します。テキストに。BufferedinputStream は、fileinputstream の効率的なラッパーにすぎません。一度に大量のバイトを読み取り、それらをすべて同時に変換するためです (バッファーに格納するため、名前が付けられています)。非効率的です(FileInputStream自体)。グーグルで検索したい例外ですが、基本的には、ファイルが見つからない場合やファイルの読み取り/書き込み権限がない場合にプログラムがクラッシュしないようにするためです。