Frage

Dies ist ein weiterer meiner Java Fragen.

Bitte nehmen Sie sich einen Blick auf diesen Code:


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();  
  }

 } 

In output.txt ich nur bekommt nicht lesbarer Text, als ob Binärdatei zum Beispiel zu öffnen.

Gibt es einen König von Problem, wenn BufferedImage und BufferedWriter gleichzeitig instanziiert werden? Ich bin mit dem gleichen Verfahren zu schreiben in einer anderen Klasse-Datei, wo eine Datei zum Lesen geöffnet ist, und eine andere zum Schreiben geöffnet, und die Dinge gut funktionieren.

P. S. Wie kann man teilnehmen < Charakter, ohne den Code zu brechen ??? Muss ich geben Sie es als <

Danke

War es hilfreich?

Lösung

Sie rufen

out.write(avg)

die int avg an den Ausgang zu schreiben.

Dies wird die Methode BufferedWriter.write(int) aufrufen; dies wird das Zeichen mit dem Unicode-Codepunkt avg schreiben. Dies ist wahrscheinlich nicht das, was Sie wollen, -).

Um die Anzahl avg im Dezimalformat zu drucken, verwenden Sie

out.write(String.valueOf(avg))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top