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

时间:2015-10-20 10:35:51

标签: java android outputstream

这个outputStream Code bellow可以工作..但是plzz告诉我在哪里可以创建一个文本文件..我把它放在我的桌面上..

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();
            }
        }
    });

2 个答案:

答案 0 :(得分:2)

您将错误的参数传递给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();
            }

答案 1 :(得分:0)

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

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