1

我正在尝试将部分用 Java (Android) 编写的代码移动到 C# (Mono for android),但我一直在寻找一种方法来做到这一点。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.Fileto转换是我的问题。这个语句应该如何改写?System.IO.Stream

4

1 回答 1

2

我通常使用静态 System.File 方法来获取对应的 FileStream:

var stream = File.OpenRead("PathToFile")

在您的情况下,您应该摆脱 java 中的“文件”类:文件是 .NET 中的静态类。您可以将路径直接(作为字符串)传递给您的 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){
 }
于 2013-01-28T13:25:30.773 回答