我正在尝试将用Java(Android)编写的代码的一部分移动到C#(用于Android的Mono),我仍然坚持找到一种方法来做到这一点。 Java中代码的一部分如下:
private Bitmap decodeFile(File f){
try {
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f), null, o);
...
} catch(FileNotFoundException ex){
}
准确地说,根据DecodeStream的第一个参数的要求,从Java.IO.File
转换为System.IO.Stream
是我的问题。该陈述应该如何改写?
答案 0 :(得分:2)
我通常使用静态System.File方法来获取相应的FileStream:
var stream = File.OpenRead("PathToFile")
在你的情况下,你应该摆脱你在java中的“File”类:File是.NET中的静态类。你能直接将路径(作为String)传递给decodeFile函数吗?
private Bitmap decodeFile(string f){
try {
var o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
using (var stream = File.OpenRead(f)) {
BitmapFactory.decodeStream(stream, null, o);
...
}
} catch(FileNotFoundException ex){
}