Datentypen Richtiges Format abspeichern

Hallo zusammen, ich bin neu in Java. Mein Ziel ist es Messdaten die ich am Handy empfange (µC+Bluetooth) auf meine SD-Karte zu speichern. Dies gelingt schon mal. Nur bekomme ich in meiner Text-Datei lauter ? ? ? ? ? ? (Fragezeichen zurück). Ist auch nicht verwunderlich, der Fehler ist klar, nur wie ich auf die Lösung komme nicht.

Das Handy wandelt Empfangenes in einen String. Versendet werden aber reine Roh-werte in Binär.

1 Startbit- 8bit- 1 Stopbit. Habe schon versucht richtig zu wandeln aber es hat nichts geändert.

Die Daten können nur auf der Handy-Ebene gewandelt werden.

Mein folgender Code ist dieser:

Java:
h=new

    Handler() {
        public void handleMessage (android.os.Message msg){

            switch (msg.what) {
                case RECIEVE_MESSAGE:                                                   // wenn Daten empfangen werden
                    byte[] readBuf = (byte[]) msg.obj;
                    String strIncom = new String(readBuf, 0, msg.arg1);                 // erstelle String aus Bytes Array
                    sb.append(strIncom);                                                // String anhängen
                    int endOfLineIndex;
   
                    while ((endOfLineIndex = sb.indexOf("|")) >= 0) {                  // wenn end-of-line,
                        String sbprint;                                                 // extrahiere String
                        sbprint = sb.substring(0, endOfLineIndex);
                        sb.delete(0, sb.length());                                      // und löschen
                        // txtArduino.setText("Daten vom MSP430: " + strIncom);          // update
                    
                        try {
                          
                            FileOutputStream fOut = new FileOutputStream(myFile, true);
                            OutputStreamWriter myOutWriter =
                                    new OutputStreamWriter(fOut);
                            myOutWriter.append(sbprint);
                            myOutWriter.close();
                            fOut.close();

                        } catch (Exception e) {
                            Toast.makeText(getBaseContext(), e.getMessage(),
                                    Toast.LENGTH_SHORT).show();
                        }
                    }
                    break;
            }


Danke im Voraus!
 
Zuletzt bearbeitet von einem Moderator:
>Code bitte in entsprechende Code-Tags packen, danke! :)

ok, danke.

>Versteh ich Dich richtig, dass Du versuchst Bytes in einen String zu schrieben??
>Sind es denn darstellbare Zeichen ??

Es sind Zahlenwerte. Aber diese werden in Bitformat gesendet und sollten auch nicht als String interpretiert/aufgenommen werden sondern als nackte Rohwerte.
 
Zum Beispiel 0b11111111 = 255 in Decimal.

Ob es letzendlich in dezimal gespeichert wird oder nur 1&0er ist egal, aber eben nicht diese Strings die
zu nichts vernünftiges führen. Sollte doch machbar sein?
 
>habe den Cocde nur kurz überflogen ... leider ist er kaum nachvollziehbar!

Sorry, das hatte ich übersehen.


Java:
switch(msg.what){
               case RECIEVE_MESSAGE:                                                 // hier werden Daten empfangen
                   byte[] readBuf =(byte[]) msg.obj;                          // hier wird ein Buffer zu verfügung gestellt, die Daten sind die Bluetooth-werte
                   String strIncom =new String(readBuf, 0, msg.arg1);               // erstelle String aus Bytes, das was ich nicht haben will, aber nicht weiß wie ich den Buffer "ungestringt" speichere
                    sb.append(strIncom);                                               // String anhängen
                   int endOfLineIndex;
  
                   while((endOfLineIndex = sb.indexOf("|"))>=0){                 // wenn end-of-line, die Zeile ist unwichtig
                       String sbprint;                                               // extrahiere String
                        sbprint = sb.substring(0, endOfLineIndex);
                        sb.delete(0, sb.length());                                     // und löschen
                     
                  
                       try{
                        
                           FileOutputStream fOut =new FileOutputStream(myFile, true); // In die Datei, die erstellt wurde
                           OutputStreamWriter myOutWriter =
                                   new OutputStreamWriter(fOut);
                            myOutWriter.append(sbprint); //schreiben (text-datei).
                            myOutWriter.close();
                            fOut.close();

Ich bin leider frischer Anfänger in Java :)
 
Zuletzt bearbeitet von einem Moderator:
... wieso er auch immer jetzt auf URL's zugreift:

Es geht letztendlich darum, Rohwerte als solche zu empfangen und im gleichen Format ungestringt in eine SD-Karte zu schreiben.
 

X5-599

Top Contributor
Eventuell könnte sowas funktionieren?

Code:
public static void main(String[] args) throws IOException
{
	//Beispiel Array
	byte[] readBuf = new byte[4];
	readBuf[0] = 127;
	readBuf[1] = (byte)128;
	readBuf[2] = '|';
	readBuf[3] = 43;
	
	FileOutputStream fOut = new FileOutputStream("out.txt", true);
	OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 
	
	for(int i = 0; i < readBuf.length; i++)
	{
		if(readBuf[i] == '|')
		{
			myOutWriter.write(System.getProperty("line.separator"));
			continue;
		}
		
		int write = readBuf[i] & 0xFF;
		myOutWriter.write(String.valueOf(write) + " ");
	}
	
	myOutWriter.close();
	fOut.close();
}
 

Joose

Top Contributor
Naja die Fehlermeldung sagt doch schon alles aus read-only file system
Sprich du darfst nur lesen und nicht schreiben. Warum/Wieso/Weshalb kann ich dir nicht sagen, aber das sollte doch schon wieder genug Hinweise geben und Stichwörter um per Google zu suchen ;)
 

X5-599

Top Contributor
Das war ja auch nur ein Beispiel. Ersetz das "out.txt" mit deinem myFile.

EDIT: Natürlich nur, wenn dein Code von oben schon mal funktioniert hat.
EDIT 2: Wenn ich in Android eine Datei schreiben möchte (nicht auf SD Karte) dann mache ich das zb so:
Code:
File file = new File("out.txt");
FileOutputStream fout = null;
OutputStreamWriter oout = null;
try
{
  fout = myActivity.openFileOutput(file.getName(), Context.MODE_PRIVATE);
  oout = new OutputStreamWriter(fout);

  oout.write("Das ist ein Test");
}
catch (Throwable e)
{
  e.printStackTrace();
}
finally
{
  try
  {
    oout.close();
    fout.close();
  }
  catch (IOException e)
  {
    e.printStackTrace();
  }
}

Keine Ahnung, ob das überhaupt so richtig ist. Aber es scheint bei mir zumindest so zu funktionieren.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Datumsstring umwandeln in richtiges dd.mm.yyyy format? Java Basics - Anfänger-Themen 2
E Richtiges Warten Java Basics - Anfänger-Themen 8
A richtiges deklarieren ArrayList Java Basics - Anfänger-Themen 5
W nicht richtiges Ergebnis /Kreditberechnung Java Basics - Anfänger-Themen 5
T Methoden Testen und schaun ob richtiges Ergebnis? Java Basics - Anfänger-Themen 5
M Klassen und Objekte => richtiges Verständnis? Java Basics - Anfänger-Themen 6
M Richtiges einbinden der reload() funktion. Java Basics - Anfänger-Themen 2
S log4j "Richtiges" Design Java Basics - Anfänger-Themen 4
H SimpleDataFormat.format() spuckt falsches Jahr aus (statt 1999 = 3899) Java Basics - Anfänger-Themen 7
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
R Timer Format: 00:00:00 Java Basics - Anfänger-Themen 29
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
N Best Practice How can I creat a programm with java under windows 10 in order to open an spreadsheet in libreoffice calc format Java Basics - Anfänger-Themen 11
A Out.format problem. Java Basics - Anfänger-Themen 3
H Datentypen Was für eine Format verbirgt sich hinter dem Integer-Wert 053? Java Basics - Anfänger-Themen 2
W OOP Objektorientiert: Darstellung von Uhrzeiten im 24-Stunden-Format Java Basics - Anfänger-Themen 15
L Java Date Format ändern Java Basics - Anfänger-Themen 5
M JSON Format Java Basics - Anfänger-Themen 5
B Schleife erstellen mit String Format "001" bis "999" Java Basics - Anfänger-Themen 2
N jodaTime java.lang.IllegalArgumentException: Invalid format Java Basics - Anfänger-Themen 3
F JSON in dokumentierten Format als PDF Java Basics - Anfänger-Themen 3
J Jar Format Java Basics - Anfänger-Themen 4
J Programm im Jar-Format funktioniert nicht richtig Java Basics - Anfänger-Themen 9
I A0-Format in jpanel anzeigen Java Basics - Anfänger-Themen 1
M Variablen Ausgabe bei System.out.format? Java Basics - Anfänger-Themen 3
M String.format Java Basics - Anfänger-Themen 3
S Fehlermeldung bei format methode Java Basics - Anfänger-Themen 1
L Java Format Strings Java Basics - Anfänger-Themen 2
S String.format Fehler Java Basics - Anfänger-Themen 12
S Das richtige Format für den SOAP Zugriff Java Basics - Anfänger-Themen 0
C Welches Format gibt Java aus? Java Basics - Anfänger-Themen 5
G String auf Format prüfen Java Basics - Anfänger-Themen 3
A String auf Format überprüfen Java Basics - Anfänger-Themen 7
U String.format (%s, %d) für Nummern Java Basics - Anfänger-Themen 37
L Erste Schritte int-Format Java Basics - Anfänger-Themen 5
N Change date Format Java Basics - Anfänger-Themen 2
T String.format Exception Java Basics - Anfänger-Themen 7
M Simple Date Format Java Basics - Anfänger-Themen 2
C string-Format Java Basics - Anfänger-Themen 6
O Tabelle Formatieren mit system.out.format Java Basics - Anfänger-Themen 11
Z System.out.format, Hilfe. Java Basics - Anfänger-Themen 14
H format() - methode Java Basics - Anfänger-Themen 2
L X509 Zertifikat in PKCS#7 Format Java Basics - Anfänger-Themen 2
K Methoden format() mit Point(x, y)-Objekt Java Basics - Anfänger-Themen 14
M Zeit von microsekunden auf Format mm:ss Java Basics - Anfänger-Themen 13
E formartierte Aussgabe mit JTextPane und String.format Java Basics - Anfänger-Themen 5
J java.util.format => mit String? Java Basics - Anfänger-Themen 2
Spin System.out.format Java Basics - Anfänger-Themen 2
N Datumseingabe im bestimmtem Format Java Basics - Anfänger-Themen 16
T scanner bestimmtes format abfragen Java Basics - Anfänger-Themen 5
D Bytes für WAV Format anpassen Java Basics - Anfänger-Themen 5
K Double Format Java Basics - Anfänger-Themen 4
-horn- Wie am Einfachsten mit Config-Datei umgehen. Welches Format? Java Basics - Anfänger-Themen 6
T Umwandeln in .jar - Format Java Basics - Anfänger-Themen 2
R String.format() funktioniert nicht Java Basics - Anfänger-Themen 2
G String in Date Format umwandeln Java Basics - Anfänger-Themen 8
M String.format() max. Spaltenbreite Java Basics - Anfänger-Themen 2
G Time-Format-Klasse ode so Java Basics - Anfänger-Themen 2
P e-format Java Basics - Anfänger-Themen 5
H Format des Datums in Logdatei Java Basics - Anfänger-Themen 2
M Festes Format bei der Ausgabe einhalten! Java Basics - Anfänger-Themen 4
S long millisekunden nach Uhrzeit format Java Basics - Anfänger-Themen 5
S Java 1.5 System.out.format() Java Basics - Anfänger-Themen 2
R Alternative zu "Format" in Java 1.4 Java Basics - Anfänger-Themen 3
R Java 5.0 / String.format - Warning Java Basics - Anfänger-Themen 8
G Zeit auslesen in bestimmtem Format Java Basics - Anfänger-Themen 2
X Dezimal/-Hexcode in lebares format umwandeln Java Basics - Anfänger-Themen 4
V String Format Java Basics - Anfänger-Themen 4
B welches format hat java.sql.date? Java Basics - Anfänger-Themen 9
G format für int Java Basics - Anfänger-Themen 10
B Integer format bestimmen Java Basics - Anfänger-Themen 2
D Datentypen Wie am Besten abspeichern Java Basics - Anfänger-Themen 1
T Unterschiedliche Datentypen - worin abspeichern? Java Basics - Anfänger-Themen 18
R Text in der DB abspeichern, und danach bearbeiten Java Basics - Anfänger-Themen 5
izoards Textdatei Human unreadable abspeichern Java Basics - Anfänger-Themen 17
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
P Enums in Array abspeichern Java Basics - Anfänger-Themen 4
D Collections Arrays in ArrayList abspeichern Java Basics - Anfänger-Themen 6
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
S Image Datei selektieren und in Projekt Verzeichnis abspeichern/kopieren Java Basics - Anfänger-Themen 16
R Benutzereingaben als Array abspeichern nach Programmstart Java Basics - Anfänger-Themen 5
D integer negativen Wert abspeichern Java Basics - Anfänger-Themen 3
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
x-tshainge Konsoleneingabe in datei Abspeichern Java Basics - Anfänger-Themen 3
B Methoden Konsoleneingabe Abspeichern Java Basics - Anfänger-Themen 3
M Netbeans Projekt lauffähig abspeichern Java Basics - Anfänger-Themen 3
M In Netbeans Programm so abspeichern dass es funktioniert Java Basics - Anfänger-Themen 8
E Erste Schritte txt.Datei mit BufferedReader einlesen und in 2D-Array abspeichern Java Basics - Anfänger-Themen 15
D InputStream parsen und als Bilddatei abspeichern Java Basics - Anfänger-Themen 1
R Eine Arrayliste in XML abspeichern und laden können Java Basics - Anfänger-Themen 7
C Datentypen Zeile aus mehrdimensionalem Array extrahieren uns abspeichern Java Basics - Anfänger-Themen 6
I google java-diff-util - Patch abspeichern Java Basics - Anfänger-Themen 1
B Quellcode einelsen "line by line" (und abspeichern in file (txt) Java Basics - Anfänger-Themen 7
A JFreeChart als png abspeichern Java Basics - Anfänger-Themen 2
J Werte der For-Schleife in Array abspeichern Java Basics - Anfänger-Themen 1
F Textdatei einlesen in ArryList (Objekte abspeichern?) Java Basics - Anfänger-Themen 4
K Inhalt von einer csv-Datei abspeichern Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben