0

我有这个功能:

public static String read(Context context) {
    FileInputStream fis;
    try {
        fis = context.openFileInput(INFO_FILE_NAME);
        int bufferSize = 2 * 1024 * 1024; // 2 MiB
        byte[] buffer = new byte[bufferSize];
        fis.read(buffer);
        return new String(buffer);
    } catch (Exception e) {
        Log.d(TAG, 
                "Exception while reading General Information File:"
                + e.getMessage());
        return null;
    }
}

该函数返回空值。这意味着有一个例外。但是,没有任何内容记录到 LogCat。

我试过用 Eclipse 调试它。一切正常,直到“return new String(buffer);” 线。当我尝试执行它时,调试器直接跳转到“return null;” 行,无需通过“Log.d”。另外,当我在“return null;”时 行,我在调试器中看不到变量“e”。这怎么可能发生?

4

2 回答 2

1

从字节转换为字符串时要考虑的要点是转换中使用的编码。

您已经正确编码了 ricintech 提到的一些有用的东西,但重点是遵循我们上面在评论中讨论的标准。

于 2012-12-26T06:54:31.980 回答
0

用这个:

byte[] buffer = new byte[4096];
receivedData=new String(buffer);
于 2012-12-25T11:43:53.177 回答