Quellcode durchsuchen

[java] BytesBuffer API

Caue Waneck vor 13 Jahren
Ursprung
Commit
cdafe0e131

+ 13 - 1
std/haxe/io/BytesBuffer.hx

@@ -36,7 +36,8 @@ class BytesBuffer {
 	var b : BytesData;
 	#elseif cs
 	var b : system.io.MemoryStream;
-	//java - ByteArrayOutputStream
+	#elseif java
+	var b : java.io.ByteArrayOutputStream;
 	#else
 	var b : Array<Int>;
 	#end
@@ -52,6 +53,8 @@ class BytesBuffer {
 		b = new BytesData();
 		#elseif cs
 		b = new system.io.MemoryStream();
+		#elseif java
+		b = new java.io.ByteArrayOutputStream();
 		#else
 		b = new Array();
 		#end
@@ -68,6 +71,8 @@ class BytesBuffer {
 		b.push(untyped byte);
 		#elseif cs
 		b.WriteByte(byte);
+		#elseif java
+		b.write(byte);
 		#else
 		b.push(byte);
 		#end
@@ -82,6 +87,8 @@ class BytesBuffer {
 		b += cast src.getData();
 		#elseif cs
 		b.Write(src.getData(), 0, src.length);
+		#elseif java
+		b.write(src.getData(), 0, src.length);
 		#else
 		var b1 = b;
 		var b2 = src.getData();
@@ -102,6 +109,8 @@ class BytesBuffer {
 		b += untyped __call__("substr", src.b, pos, len);
 		#elseif cs
 		b.Write(src.getData(), pos, len);
+		#elseif java
+		b.write(src.getData(), pos, len);
 		#else
 		var b1 = b;
 		var b2 = src.getData();
@@ -126,6 +135,9 @@ class BytesBuffer {
 		#elseif cs
 		var buf = b.GetBuffer();
 		var bytes = new Bytes(buf.Length, buf);
+		#elseif java
+		var buf = b.toByteArray();
+		var bytes = new Bytes(buf.length, buf);
 		#else
 		var bytes = new Bytes(b.length,b);
 		#end

+ 9 - 0
std/java/io/ByteArrayOutputStream.hx

@@ -0,0 +1,9 @@
+package java.io;
+import haxe.io.BytesData;
+
+extern class ByteArrayOutputStream extends OutputStream
+{
+	@:overload(function(size:Int):Void {})
+	function new():Void;
+	function toByteArray():BytesData;
+}

+ 12 - 0
std/java/io/InputStream.hx

@@ -0,0 +1,12 @@
+package java.io;
+import haxe.io.BytesData;
+
+extern class InputStream 
+{
+	function close():Void;
+	function available():Int;
+	function flush():Void;
+	@:overload(function():Int { })
+	@:overload(function(b:BytesData, off:Int, len:Int):Int { })
+	function read(b:BytesData):Int;
+}

+ 11 - 0
std/java/io/OutputStream.hx

@@ -0,0 +1,11 @@
+package java.io;
+import haxe.io.BytesData;
+
+extern class OutputStream 
+{
+	function close():Void;
+	function flush():Void;
+	@:overload(function(b:Int):Void { })
+	@:overload(function(b:BytesData, off:Int, len:Int):Void { })
+	function write(b:BytesData):Void;
+}