AWT Maus Koordinaten abspeichern in eine Textfile

your-mom

Neues Mitglied
hallo zusammen... (dies ist mein erster foreneintrag überhaupt... auf 😉

ich habe ein kleines programm geschrieben das mir die mausposition immer laufend mit der Systemzeit ausgibt. nun würde ich die daten gerne in eine datei speichern . mir liegt ein anderes programm vor ,der mit dem Formatter Strings in einer text datei speichern kann , aber ich kriege es nicht hin beides zu verbinden.. any ideas? hier der code zum maus programm .. vielen dank im voraus !

Java:
import java.util.*;
import java.awt.MouseInfo;


import java.awt.Point;
import java.awt.PointerInfo;
import java.util.Formatter;

public class Apple implements Runnable{

	String name;
	int time;
	Random r = new Random();
	
public Apple (String s){
  name = s;
   time = 20;
   
PointerInfo info = MouseInfo.getPointerInfo();
   
   Point location = info.getLocation();
   System.out.println( System.currentTimeMillis());
   System.out.println("x="+location.x+ " y="+location.y);
}
public void run(){
		try{
			
			for(int i = 0;i<=1000000;i++){
		
			Thread.sleep(time);
			
 PointerInfo info = MouseInfo.getPointerInfo();
			    
	Point location = info.getLocation();
			   
System.out.println( System.currentTimeMillis());
			  
System.out.println("x="+location.x+ " y="+location.y);
			
}
}catch(Exception e){}
		
}

}

und hier zum speicher programm

Java:
import java.util.Formatter;


public class createfilesave {

	private Formatter x;
	
	public void openFile(){
		
		try{
			x = new Formatter("your.txt");
			
		}
		catch(Exception e){
			System.out.println("didnt work  ");
		}
		
		}
	
 public void addRecords(){
	 
	
	x.format( "%s%s%s" ,"das ist"," ein test", "altaa");
 }
	
	public void closeFile(){
		x.close();
	}
}
 
so.. danke erstmal.. jetzt spuckt das programm in der console schön die koordinaten alle 20ms aus..

in der datei wird aber leider nur die letzte koordinate gespeichert obwohl es in der for schleife drin ist..

mh.. ich nehme an die schleife bringt was die datei angeht nicht viel.. weil die strings immer wieder überschrieben werden. .. was tun damit alles abgespeichert wird? da braucht man irgendeinen buffer/array wo das drin abgespeichert werden muss.. oder? .. ich lies morgen den link nochmal weiter. :rtfm: erstmal schlafen gehen 😉 aber wenn ihr noch ne kreative idee habt... 🙂


Java:
import java.awt.MouseInfo;
import java.util.*;
import java.awt.MouseInfo;

import java.awt.Point;
import java.awt.PointerInfo;
import java.util.Formatter;

import java.awt.Point;
import java.awt.PointerInfo;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Formatter;
public class Apple implements Runnable{

	String name;
	int time;
	Random r = new Random();
	
public Apple (String s){
  name = s;
   time = 20;
 }
public void run(){
		try{
			
			for(int i = 0;i<=1000000;i++){
		
			Thread.sleep(time);
	
Writer fw = null; 

try
{  
	 PointerInfo info = MouseInfo.getPointerInfo();
	    
Point location = info.getLocation();
	System.out.println("x="+location.x+  "y="+location.y);
		

fw = new FileWriter( "fileWriter.txt" ); 
fw.write( "x="+location.x+ " y="+location.y +  System.currentTimeMillis() );   
fw.append( System.getProperty("line.separator") );
 } catch ( IOException e ) {   System.err.println(
"Konnte Datei nicht erstellen" )
; } finally {   if ( fw != null )    
	try { fw.close(); }
catch ( IOException e )
{ } }

}}
			catch(Exception e){}
		
}

}
 
Du erstellst in der for-Schleife jedesmal einen neuen FileWriter. Den solltest Du aber vor der Schleife erzeugen und in der Schleife dann nur schreiben.
Statt der for Schleife würde ich hier eine while mit einem Abruchkriterium, das von aussen setzbar ist, verwenden, damit man FileWriter und Thread sauber beenden kann, ohne die 1 Mio Schleifendurchgänge abzuwarten.
 

Zurück
Oben