Hello StackOverFlow社区。这是我第一次发帖,所以如果我犯了任何错误,我会道歉!
我一直在尝试获取应用程序的内部存储目录以读取和写入文件。
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import android.annotation.SuppressLint;
import android.content.ContextWrapper;
import android.support.v7.app.ActionBarActivity;
public class Security_Management extends ActionBarActivity
....Other Functions...
public byte[] Encrypted_File_Reader (String File_Name) throws Exception
{
/* Checks that the File can be Created/Exists **/
File file = new File(getFilesDir(), File_Name);
if(file.exists() == false)
{
byte[] Output = null;
return Output;
}
else
{
/* Prepares to Read the File **/
InputStream Input = new FileInputStream(file);
/* Prepares to Read in the Data **/
ByteArrayOutputStream contents = new ByteArrayOutputStream();
int len;
byte[] data = new byte[1024];
/* Reads the File **/
do
{
len = Input.read(data);
if (len > 0) contents.write(data, 0, len);
} while (len == data.length);
byte[] Draft_Byte_Output = contents.toByteArray();
/* Decodes the File **/
byte[] Output = Decoder(User_Key, Draft_Byte_Output);
/* Finishes **/
Input.close();
return Output;
}
}
但是,每次尝试运行代码时,都会在以下行中发生异常:
File file = new File(CtWr.getFilesDir(), File_Name);
我对导致异常的原因感到茫然,因为我的应用依赖于此功能才能使其正常工作。谢谢你的任何回复!!
加成 我认为这是堆栈跟踪:
08-12 00:18:34.756: W/Binder(5826): Caught a RuntimeException from the binder stub implementation.
08-12 00:18:34.756: W/Binder(5826): java.lang.NullPointerException
08-12 00:18:34.756: W/Binder(5826): at android.inputmethodservice.IInputMethodWrapper.setSessionEnabled(IInputMethodWrapper.java:280)
08-12 00:18:34.756: W/Binder(5826): at com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129)
08-12 00:18:34.756: W/Binder(5826): at android.os.Binder.execTransact(Binder.java:404)
08-12 00:18:34.756: W/Binder(5826): at dalvik.system.NativeStart.run(Native Method)
答案 0 :(得分:0)
我一直在尝试在我的应用程序中使用ContextWrapper来获取应用程序的内部存储目录以读取和写入文件。
您无需创建ContextWrapper
“以获取用于读取和写入文件的应用程序的内部存储目录”。对于初学者,Activity
是ContextWrapper
。
但是,每次尝试运行代码时,都会在以下行中发生异常:
摆脱CtWr.
并在活动本身上致电getFilesDir()
。