In eier File schreiben

guguli

Bekanntes Mitglied
Hallo zusammen,

ich schreib eine App womit ich die Beschleunigung messe in X_Y_Z_Achse messe. nun möchte ich diese Werte in einer TXT datei schreiben.

Die beschleunigung messe ich wie folgt:
Java:
EditText myText;
public void onSensorChanged(SensorEvent event) {

		Sensor mySensor = event.sensor;

		if (mySensor.getType() == Sensor.TYPE_ACCELEROMETER) {
			float x = event.values[0];
			float y = event.values[1];
			float z = event.values[2];

			long curTime = System.currentTimeMillis();

			if ((curTime - lastUpdate) > 100) {
				long diffTime = (curTime - lastUpdate);
				lastUpdate = curTime;

				float speed = Math.abs(x + y + z - last_x - last_y - last_z)
						/ diffTime * 10000;

				last_x = x;
				last_y = y;
				last_z = z;
				title.setText(R.string.app_name);
				tv.setText("X axis" + "\t\t" + last_x);
				tv1.setText("Y axis" + "\t\t" + last_y);
				tv2.setText("Z axis" + "\t\t" + last_z);
			}
		}
	}

und um diese werte in der datei zu schreiben erzeuge ich eine datei dann schreibe ich in dieser wie folgt:
Java:
private void save() {
		FileOutputStream fos = null;
		try {
			fos = openFileOutput("mynote.txt", MODE_PRIVATE);
			fos.write(myText.setText("X axis" + "\t\t" + last_x);
		} catch (FileNotFoundException e) {
			Log.e("CreateFile", e.getLocalizedMessage());
		} catch (IOException e) {
			Log.e("CreateFile", e.getLocalizedMessage());
		} finally {
			if (fos != null) {
				try {
					fos.flush();
					fos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

	}
das problem ist jedoch hier
fos.write(myText.setText("X axis" + "\t\t" + last_x);

ich kann das nicht so anwenden. Kann mir einer bitte helfen????

THX
 

sti

Mitglied
Du nennst doch schon das Problem! :D

Java:
fos.write(myText.setText("X axis" + "\t\t" + last_x);

Du versuchst
1. einen Text zu setzen sowohl in deiner txt datei + deines Textfeldes
2. fehlt eine Klammer!

Java:
String txt = "X axis" + "\t\t" + last_x;
fos.write(txt);
myText.setText(txt);
 

guguli

Bekanntes Mitglied
aber fos.write(txt); geht nicht, da txt ein int sein muss.
und ich hab aber String txt. Ich verstehe aber auch nicht wieso write() ein int übergeben bekommt :(
 

sti

Mitglied
Du verwendest einen Fileoutputstream. Dieser schreibt byteweise. (Das steht auch in den Docs!!)

Also entweder deinen String in einen ByteArray umwandeln oder einen anderen Writer nehmen. (FileWriter z.B. )
 

guguli

Bekanntes Mitglied
ok mit txt.getByte() funktioniert. :)

Aber jetzt eine andere Frage.
Die werte ändern sich ja ständig, nun wenn ich den save buton klicke dann habe ich den einen Wert in diesem Moment. Ich mochte aber wenn ich den save button klicke alle werte ab diesem Zeitpunkt haben.
Wie kann ich dies denn realisieren???

THX
 

dzim

Top Contributor
Du willst eigentlich so etwas wie ein recording machen, was?
Vielleicht solltest du dann deinen Ansatz etwas vergössern: Einen Service, der die Daten sammelt und der nach seinem Start per Broadcasts gesteuert wird. Im Intent zum Start des Services könnte dann noch der Pfad für die Datei als Extra enthalten sein. Ein Brodcast sagt ihm, wann er stoppen soll. #onStop oder wie das heisst sichert die Daten dann...
 

sti

Mitglied
Ansonsten hier ein relativ fauler Ansatz ohne zu denken:

Java:
EditText myText;
boolean saveData = false;
public void onSensorChanged(SensorEvent event) {
 
		Sensor mySensor = event.sensor;
 
		if (mySensor.getType() == Sensor.TYPE_ACCELEROMETER) {
			float x = event.values[0];
			float y = event.values[1];
			float z = event.values[2];
 
			long curTime = System.currentTimeMillis();
 
			if ((curTime - lastUpdate) > 100) {
				long diffTime = (curTime - lastUpdate);
				lastUpdate = curTime;
 
				float speed = Math.abs(x + y + z - last_x - last_y - last_z)
						/ diffTime * 10000;
 
				last_x = x;
				last_y = y;
				last_z = z;
				title.setText(R.string.app_name);
				tv.setText("X axis" + "\t\t" + last_x);
				tv1.setText("Y axis" + "\t\t" + last_y);
				tv2.setText("Z axis" + "\t\t" + last_z);
if(saveData){
save();
}

			}
		}
	}

-> Also einfacher Boolwert der bei drücken des Saveknopfs auf true gesetzt wird. (Bei erneutem Klick auf false)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Firebase RealtimeDatabase - Daten aus Queries in CSV File speichern Android & Cross-Platform Mobile Apps 1
AndoridStudio Read-only file system Android & Cross-Platform Mobile Apps 5
M Unsupported class file major version 57 - Fehlermeldung bei Android Studio Android & Cross-Platform Mobile Apps 27
Soloeco Android Save File on external Storage Android & Cross-Platform Mobile Apps 3
W .txt File aus dem Speicher des Smartphone lesen Android & Cross-Platform Mobile Apps 15
S Android APK File Installationsfehler Android & Cross-Platform Mobile Apps 2
Flynn Text-File auf externe Speicherkarte schreiben Android & Cross-Platform Mobile Apps 1
B Android ListFragment parse xml from File Android & Cross-Platform Mobile Apps 1
B Android XML File ein lesen und menü erzeugen Android & Cross-Platform Mobile Apps 1
M File der externen SD-Karte herausfinden Android & Cross-Platform Mobile Apps 3
G Port öffnen mit new SerialPort(new File... Android & Cross-Platform Mobile Apps 2
U Android Jar-File einbinden vs. externes Projekt Android & Cross-Platform Mobile Apps 7
K Java ME Export -> Invalid jar file ? Android & Cross-Platform Mobile Apps 9
F Eclipse JAD File erzeugen -- Problem Android & Cross-Platform Mobile Apps 10
M Daten aus Jad-file auslesen Android & Cross-Platform Mobile Apps 2
F Problem beim Erstellen der Jar File Android & Cross-Platform Mobile Apps 4
L Jar file auf Pda unter Windows Mobile ausführen Android & Cross-Platform Mobile Apps 2
P Erstellen einer Jar-File Android & Cross-Platform Mobile Apps 2
T Lesen / Schreiben einer Textdatei - SD-Karte Android & Cross-Platform Mobile Apps 42
A Mit Java neues item in ein string-array einer Strings.xml schreiben Android & Cross-Platform Mobile Apps 4
M Android Schreiben von JsonDaten in eine SqliteDB Android & Cross-Platform Mobile Apps 7
G Realm (jede Sekunde schreiben) Android & Cross-Platform Mobile Apps 1
A Android Datei erstellen/schreiben/auslesen Android & Cross-Platform Mobile Apps 1
D Lib für (Desktop-)Java und Android schreiben Android & Cross-Platform Mobile Apps 7
A Kann nicht in TextView einer anderen Klasse schreiben - wieso? Android & Cross-Platform Mobile Apps 9
A Android Kann nicht mehr auf SDCard schreiben Android & Cross-Platform Mobile Apps 8
T Android Ergebnis eines XML+XSLT "transform" in eine HTML - Datei schreiben (Android) Android & Cross-Platform Mobile Apps 2
V [Java] und [JavaME] ClientServer StreamConnection . Problem beim lesen / schreiben Android & Cross-Platform Mobile Apps 2
M Text in txt-Datei schreiben und nach ABC sortieren? Android & Cross-Platform Mobile Apps 2
B Daten in *.txt schreiben Android & Cross-Platform Mobile Apps 7
R Lesen und schreiben von Daten. Android & Cross-Platform Mobile Apps 2
L SecurityException beim lesen/schreiben eine Datei Android & Cross-Platform Mobile Apps 7
B Textdatei auf Handy erstellen / lesen / schreiben? Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben