此 OutputStream 代码不会将字符串保存到 Txt 文件中

This OutputStream Code Does't Save the String into the Txt File

下面的输出流代码可以工作..但是请告诉我在哪里可以制作文本文件..我已经把它放在我的桌面上了..

Button input = (Button) findViewById(R.id.input);    
input.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            try {
                String str = "MY NAME IS OZEER AHMAD, I BELONGS FROM KASHMIR. DOING BCS FROM PESHAWAR UNIVERSITY";
                FileOutputStream fout = openFileOutput(str, MODE_WORLD_READABLE);
                OutputStreamWriter w = new OutputStreamWriter(fout);
                w.write(str);
                w.flush();
                w.close();
                Toast.makeText(getBaseContext(),  "Data Inserted IN OUTPUT FILE", Toast.LENGTH_LONG).show();    
            } catch (Exception ex) {
                // TODO Auto-generated catch block  
                Toast.makeText(getBaseContext(),  "ERROR FOUND IN OUTPUT FILE", Toast.LENGTH_LONG).show();
                ex.printStackTrace();
            }
        }
    });

请删除 w.write(str) 之后的 w.flush();

因为写入不是立即从缓冲区完成的,而是在缓冲区有足够的数据量或关闭时完成的。在流上调用 flush() 会删除其中的所有数据,无论是否已写入。

您向 openFileOutput 传递了错误的参数,第一个参数是文件名而不是您要写入文件的字符串,请使用此代码:

String fileName="SOMEFILENAME.txt";
String str="this is the string you will see inside the file";
            try {
                FileOutputStream outputStream=openFileOutput(fileName,MODE_WORLD_READABLE);
                OutputStreamWriter outputStreamWriter=new OutputStreamWriter(outputStream);
                outputStreamWriter.write(str);
                outputStreamWriter.flush();
                outputStreamWriter.close();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO: handle exception
                e.printStackTrace();
            }