Android 从其他活动读取文件

Android 从其他活动读取文件,android,fileinputstream,Android,Fileinputstream,我想读取使用OutputStreamWriter在另一个活动中编写的文本文件。 这是Sale.java中的readFromFile方法: private int readFromFile(String request) { int res = 0; try { //InputStream inputStream = openFileInput("dalassnums.txt"); File file=new Fil

我想读取使用OutputStreamWriter在另一个活动中编写的文本文件。 这是Sale.java中的readFromFile方法:

private int readFromFile(String request) {

        int res = 0;
        try {
            //InputStream inputStream = openFileInput("dalassnums.txt");
            File file=new File("dalassnums.txt");
            InputStream inputStream = new FileInputStream(file);

            if ( inputStream != null ) {
                InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
                BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
                String receiveString = "";

                while ( (receiveString = bufferedReader.readLine()) != null ) {
                    String s=bufferedReader.readLine();
                    if(receiveString==request)  {
                        res=Integer.valueOf(s);
                        break;
                    }
                }

                inputStream.close();

            }
        }
        catch (FileNotFoundException e) {
            Log.e("login activity", "File not found: " + e.toString());
            res=0;

        } catch (IOException e) {
            //Log.e("login activity", "Can not read file: " + e.toString());

        }

        return res;



    }
这是MainActivity.java中的writeToFile方法:

private void writeToFile2(String numchar) {
    try {
        //File file=new File("dalassnums.txt");
        //OutputStream outputStream=new FileOutputStream(file);
        OutputStreamWriter outputStreamWriter;
        if(numchar=="1") outputStreamWriter = new OutputStreamWriter(openFileOutput("dalassnums.txt", Context.MODE_PRIVATE));
        else  outputStreamWriter = new OutputStreamWriter(openFileOutput("dalassnums.txt", Context.MODE_APPEND));
        for(int k=0; k<imageNums.size();k+=2){
        outputStreamWriter.append(imageNums.get(k));
        outputStreamWriter.append("\n");
        outputStreamWriter.append(imageNums.get(k+1));
        outputStreamWriter.append("\n");
        }
        outputStreamWriter.close();
    }
    catch (IOException e) {
        Log.e("Exception", "File write failed: " + e.toString());
    } 
}
private void writeToFile2(字符串numchar){
试一试{
//File File=新文件(“dalassnums.txt”);
//OutputStream OutputStream=新文件OutputStream(文件);
OutputStreamWriter OutputStreamWriter;
如果(numchar==“1”)outputStreamWriter=新的outputStreamWriter(openFileOutput(“dalassnums.txt”,Context.MODE_PRIVATE));
else outputStreamWriter=新的outputStreamWriter(openFileOutput(“dalassnums.txt”,Context.MODE_APPEND));

对于
readFromFile
中的(int k=0;k使用:
openFileInput
),请查看以下示例:

另一个问题是,这是无效的:

if(numchar=="1") 
你应该

if(numchar.equals("1")) 

否则,您将比较引用值而不是字符串的内容

您的上下文有什么问题?使用活动作为上下文,即从活动内部传递
,或者使用getApplicationContext。openFileInput/openFileOutput设置文件的正确路径,因此它们应该一起使用。我使用了getApplicationContextxt;未更改,仍然返回0:/噢,谢谢,我正在查找此错误。如果我打扰您,很抱歉……您对我无法读取该文件的原因有其他想法吗?使用
FileInputStream
而不是
InputStream
并将
if(receiveString==request)
更改为
if(receiveString.equals(request))
问题已解决。谢谢