ファイル誤動作へのJava書き込み
-
26-09-2019 - |
質問
これはまた別の私のJavaの質問です。
このコードを見てみてください。
public static void main(String[] args) {
if( args.length != 5) {
System.out.println("Error. Wrong number of params!");
System.exit(0);
}
File file = new File(args[0]);
try {
BufferedImage image = ImageIO.read(file);
FileWriter fstream = new FileWriter("output.txt");
BufferedWriter out = new BufferedWriter(fstream);
int avg = 0;
int w = image.getWidth();
int h = image.getHeight();
Rectangle r = new Rectangle();
double whiteHelp = Double.parseDouble(args[4]);
avg = (int) (avg / 1);
int startX = Integer.parseInt(args[2]);
int startY = Integer.parseInt(args[3]);
r.width = r.height = Integer.parseInt(args[1]);
for(int i = startY; i <= h - r.height; i += r.height) {
for(int j = startX; j <= w - r.width; j += r.width) {
r.x = j;
r.y = i;
avg = getTileColor(r, image, whiteHelp);
//System.out.print(avg);
out.write(avg);
}
//System.out.println();
out.write("\n");
}
out.close();
image.flush();
System.out.println("Finished parsing the image. Solving...");
} catch (Exception e) {
System.out.println("Error.");
e.printStackTrace();
}
}
には、例えば、バイナリファイルを開くかのように私は、非読めるテキストを取得OUTPUT.TXTます。
BufferedImageのとBufferedWriterのが同時にインスタンス化されたときに問題のいくつかの王様はありますか?私は1つのファイルが読み込みのために開かれた別のクラスにファイルへの書き込みに同じ手順を使用していて、別の書き込みのために開かれ、物事がうまく動作ます。
p.s。コードを壊すことなく、文字を入力する&LTする方法?私のように&LT、それを入力する必要があります。?
おかげ
解決
あなたのinvoke
out.write(avg)
出力にint型の平均を記述すること。
これは、メソッドBufferedWriter.write(int)
を呼び出します。これは、Unicodeコードポイントavg
の文字を書き出します。これは何をしたい、おそらくではありません; - 。)
10進形式で番号avg
を印刷するには、使用
out.write(String.valueOf(avg))
所属していません StackOverflow