2016-11-22 82 views
0

我试图在文件中写入数据并将其存储在数据库中。我在网上尝试了很多代码。但是,我无法写入数据。任何人都可以请帮助我。截至目前,我正在使用下面的代码。我声明onClick =“writemessage”并在writemessage(View view)函数中使用下面的代码。我通过将手机连接到笔记本电脑来运行。任何人都可以请帮助我。无法在存储卡中创建文件

FileOutputStream fos = null; 

    try { 
     String filename = "abc.txt"; 
     String data = "Sensor data is found"; 
     File myFile = new File(Environment 
       .getExternalStorageDirectory(), filename); 
     if (!myFile.exists()) 
      myFile.createNewFile(); 
     byte[] data = string.getBytes(); 
     try { 
      fos = new FileOutputStream(myFile); 
      fos.write(data); 
      fos.flush(); 
      fos.close(); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
+0

请详细解释**,**“我无法写入数据”的意思。 – CommonsWare

+0

欢迎来到Stack Overflow!请查看我们的[SO问题清单](http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)来帮助你提出一个好问题,从而得到一个很好的答案。 –

回答

0

您是否在清单文件中添加了此权限并处理了运行时权限。

 < uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
0

检查AndroidManifest.xml此权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

,并在您的活动SD卡上写入文件前把手转动一次许可

private int REQUEST_WRITE_EXTERNAL_STORAGE = 1; 

检查Write External Storage Permission

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { 
     ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE); 
    }else { 
    //Write Data to SD Card 
    } 

并覆盖onRequestPermission活动方法。

@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 
    switch (requestCode) { 
     case MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE: { 
      if (grantResults[0] != PackageManager.PERMISSION_GRANTED) { 
       this.finish(); 
       Toast.makeText(this, "Permission is required.", Toast.LENGTH_LONG).show(); 
      } 
      return; 
     } 
     default: 
      super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
      break; 

    }