转换System.IO.Stream到的java.io.InputStream

问题描述 投票:2回答:1

我使用的是库在C#中Xamarin的Android项目。我想实例化对象需要两个参数类型的java.io.InputStream和java.io.OutputStream中的。所述的BluetoothSocket的输入和输出流的类型System.Io的因此转换返回一个错误。类似下面的代码段

public static void Connect(string address)
    {
        BluetoothDevice device = mBtAdapter.GetRemoteDevice(address);
        BluetoothSocket socket = device.CreateRfcommSocketToServiceRecord(SPP_UUID);
        socket.Connect();
        mBtSocket = socket;

        java.io.InputStream input = socket.InputStream;//cannot implicitly convert
        java.io.OutputStream output = socket.OutputStream;//cannot implicitly convert
        cmd = new DP25ROU(input, output);
    }

是否有输入/输出转换成他们各自的java.io的同行的一个有效方法是什么?

c# android xamarin.android
1个回答
1
投票

是的,你可以访问InputStreamOutputStream是这样的:

Java.IO.InputStream input = ((Android.Runtime.InputStreamInvoker)socket.InputStream).BaseInputStream;

Java.IO.OutputStream output = ((Android.Runtime.OutputStreamInvoker)socket.OutputStream).BaseOutputStream;

0
投票

幸运的是,有一个内置的转换器从.NET流的java.io流

例:

var fileStream = new FileStream(@"c:/test/test.pdf", FileMode.Append);
java.io.InputStream javaStream = new ikvm.io.InputStreamWrapper(fileStream);
© www.soinside.com 2019 - 2024. All rights reserved.