【问题标题】:This OutputStream Code Does't Save the String into the Txt File此 OutputStream 代码不会将字符串保存到 Txt 文件中
【发布时间】:2015-10-20 10:35:51
【问题描述】:

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

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

【问题讨论】:

  • Assalam o Aliekum.. 请在w.write()之后删除w.flush();
  • 它不工作兄弟#MubashirHanif

标签: java android outputstream


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      • 2012-02-03
      • 2018-11-12
      • 1970-01-01
      相关资源
      最近更新 更多