私はこの問題に数時間苦労してきましたが、どのように進めるのが最善かわかりません。
コードは、シーザー暗号を使用してファイルをエンコードして読み取り、_encodedが追加された新しいファイルにディスクに書き込む必要があります。
確かにファイルを作成しますが、毎回空白になります。ドキュメントを見ると、必ずプリントライターをフラッシュして閉じるように指示されています。私はそれをしました。
また、それはおそらく私が回り道で問題に取り組んでいたためだと思いました。FileOutputstreamを使用したのではないかと思いました。
Scanner sc=new Scanner(inFile);
//File outFile=new File("caesar_encoded.txt");
//FileOutputStream outFileStream=new FileOutputStream(outFile);
PrintWriter outStream=new PrintWriter("caesar_encoded.txt");
while(sc.hasNext())
{
String phrase = sc.nextLine().toUpperCase();
for (int i = 0; i < phrase.length(); i++) {
if (Character.isLetter(phrase.charAt(i))) {
for (int j = 0; j < alpha.length; j++) {
if (phrase.charAt(i) == alpha[j]) {
if (j == alpha.length - 1) {
outStream.print(alpha[0]);
} else {
outStream.print(alpha[j + 1]);
}
}
}
} else {
outStream.print(phrase.charAt(i));
}
}
outStream.println();
}
outStream.flush();
outStream.close();
sc.close();
私はこれを試してみましたが、同じ結果になりました:
Scanner sc=new Scanner(inFile);
File outFile=new File("caesar_encoded.txt");
FileOutputStream outFileStream=new FileOutputStream(outFile);
PrintWriter outStream=new PrintWriter(outFileStream);