Datentypen FileOutputStream#write(int) mit ints?

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
Hi, folgendes Problem: Wenn ich sowas mache wie
Java:
int i = 19;
myOutPutStream.write(i);
dann steht in meiner Output Datei irgendein komisches Zeichen, aber nicht die Zahl als Zeichen. Ich müsste sie entsprechend ihrem ASCII Zeichenwert übergeben (also 48 für 0, 49 für 1 usw).
Aber ich rechne mit der Zahl, und sie kann halt eben auch mehrstellig sein.

...wie krieg ich denn ne Zahl damit in meine Datei? Ich hab versucht sie nach char zu casten, bringt aber auch nichts.. Integer bietet auch nur byteValue(), was auch net funktioniert.

???:L
 

diggaa1984

Top Contributor
Java:
os.write(String.valueOf(i).getBytes());

ist irgendwie total hässlich, zumal ja auch die Methode write(int i) in dem interface angegeben ist
 
G

Gast

Gast
Danke!

...finde das ganze auch ziemlich verwirrend. was genau ist der Unterschied zwischen byte und int? Bzw. was geschieht bei dieser Umwandlung zu String und dann getBytes()?
 

diggaa1984

Top Contributor
hm also das Ende meiner Aufruf kette endet in diesen 2 Methoden der Klasse StringCoding:
Java:
static byte[] encode(Charset cs, char[] ca, int off, int len) {
	StringEncoder se = new StringEncoder(cs, cs.name());
	char[] c = Arrays.copyOf(ca, ca.length);
	return se.encode(c, off, len);
}

//Aufruf durch getBytes in String-Klasse
static byte[] encode(char[] ca, int off, int len) {
	String csn = Charset.defaultCharset().name();
	try {
		return encode(csn, ca, off, len);
	} catch (UnsupportedEncodingException x) {
		warnUnsupportedCharset(csn);
	}
	
	try {
		return encode("ISO-8859-1", ca, off, len);
	} catch (UnsupportedEncodingException x) {
		// If this code is hit during VM initialization, MessageUtils is
		// the only way we will be able to get any kind of error message.
		MessageUtils.err("ISO-8859-1 charset not available: " + x.toString());
		// If we can not find ISO-8859-1 (a required encoding) then things
		// are seriously wrong with the installation.
		System.exit(1);
		return null;
	}
}

vielleicht kannst dir da was draus ableiten ^^

edit: für meine begriffe könnte es nur was mit dem charset zu tun haben. vielleicht wird da implizit ein anderes verwendet, wenn man nicht über die String-klasse geht.
 
Zuletzt bearbeitet:
G

Gast

Gast
Danke!

...finde das ganze auch ziemlich verwirrend. was genau ist der Unterschied zwischen byte und int? Bzw. was geschieht bei dieser Umwandlung zu String und dann getBytes()?
int ist größer als byte.
Bei der Umwandlung wird die 1 zu einem String. Mit getBytes() erhählt man dann den Byte Wert für den String 1. Somit speichert er in die Datei eine 49. Was laut Ascii Tabelle die 1 ist.

@hdi:
Muss die output Datei denn menschlich lesbar sein? Wenn nicht wäre es doch egal.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J FileOutputStream write Java Basics - Anfänger-Themen 19
Corben Input/Output FileOutputStream - neue Zeile mit write(10) Java Basics - Anfänger-Themen 6
F FileOutputStream.write Java Basics - Anfänger-Themen 2
noah1407 Fileoutputstream Java Basics - Anfänger-Themen 4
S Datei-Speicherort von FileOutputStream Java Basics - Anfänger-Themen 4
M Fileoutputstream: Linux Dateinamen mit Umlaute Java Basics - Anfänger-Themen 4
J FileOutputStream aktuelle Speicher Pfad ausgeben Java Basics - Anfänger-Themen 13
J FileOutputStream Java Basics - Anfänger-Themen 3
A fileoutputstream ändern Java Basics - Anfänger-Themen 14
N FileOutputStream und existenz von Datei überprüfen Java Basics - Anfänger-Themen 2
O OOP FileOutputStream überschreibt ganzen inhalt der txt Java Basics - Anfänger-Themen 4
J FileOutputStream richtige Pfadangabe? Java Basics - Anfänger-Themen 8
A FileOutputStream -> byte[] (ohne File) Java Basics - Anfänger-Themen 6
G FileOutputStream generieren Java Basics - Anfänger-Themen 2
M FileOutputStream und zu große Zahlen! Java Basics - Anfänger-Themen 10
C FileInputStream und FileOutputStream Java Basics - Anfänger-Themen 4
A Instance methods should not write to "static" fields Java Basics - Anfänger-Themen 4
N Threads Read-Modify-Write Problem bei Multithreading (philosopher dining problem) Java Basics - Anfänger-Themen 5
S write(), weshalb verschiedene Ausgaben? Java Basics - Anfänger-Themen 4
K exec.StdIn.Write Java Basics - Anfänger-Themen 7
B Input/Output Socket I/O - outputStream.write(-1) Java Basics - Anfänger-Themen 2
X write() und Zufallszahlen Java Basics - Anfänger-Themen 2
K Input/Output read/write Java Basics - Anfänger-Themen 15
M Unterschied append / write aus der Klasse Writer Java Basics - Anfänger-Themen 2
W file read write crash Java Basics - Anfänger-Themen 2
M Audio Stream läuft auf :connection abort: socket write error Java Basics - Anfänger-Themen 2
M Pfad angabe bei getRescource und ImageIO.write Java Basics - Anfänger-Themen 4
G ImageIO.write() Java Basics - Anfänger-Themen 2
M Streams, read and write Java Basics - Anfänger-Themen 2
I ImageIO.write(bild, "was gibts da alles", pfad); Java Basics - Anfänger-Themen 6
D FileWriter write? Zeilenumbruch ? Java Basics - Anfänger-Themen 4
S Technik hinter der write Methode Java Basics - Anfänger-Themen 5
C write Java Basics - Anfänger-Themen 3
S Inhalt aus Array auf JSP anzeigen mit bean:write Java Basics - Anfänger-Themen 2
F javax.imageio.ImageIO write methode Java Basics - Anfänger-Themen 11
B char Array mit ints Java Basics - Anfänger-Themen 7
B ints mit fuehrenden Nullen? Java Basics - Anfänger-Themen 3
Guybrush Threepwood Effizientester Datentyp zur Speicherung einer ungeordneten Menge von ints Java Basics - Anfänger-Themen 8
J Denkanstoß - Array von Objekten mit Ints Java Basics - Anfänger-Themen 20
T JFormattedTextField ints auslesen Java Basics - Anfänger-Themen 11
Developer_X Ints ablesen Java Basics - Anfänger-Themen 30
RaoulDuke Division von ints Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben