2017-04-18 3 views
1

dans ma demande, je veux lire un fichier de stockage USB amovible je a.txt et je veux lirelire le fichier de stockage USB amovible

void read() { 
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); 
HashMap<String, UsbDevice> deviceList = manager.getDeviceList(); 
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator(); 
StringBuffer sb = new StringBuffer(); 
while (deviceIterator.hasNext()) { 
    UsbDevice device = deviceIterator.next(); 
    String Model = device.getDeviceName(); 

    try { 
     File file = new File(Model + "/a.txt"); 
     if (file.exists()) 
      Toast.makeText(getApplicationContext(), "Exist", Toast.LENGTH_LONG).show(); 
     else 
      Toast.makeText(getApplicationContext(), "Not Exist", Toast.LENGTH_LONG).show(); 

     BufferedReader br = new BufferedReader(new FileReader(Model + "/a.txt")); 
     String sCurrentLine; 

     while ((sCurrentLine = br.readLine()) != null) { 
      textView.append(sCurrentLine + "\n"); 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
     Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show(); 
    } 
} 
} 

lorsque le fichier de contrôle existe return false et lors de l'ouverture et exception throw fichier de lecture

java.io.filenotfoundexception :/dev/bus/001/002/a.txt: opent failed : EACCES (permission denied)

dans Manifest ont

<uses-permission android:name="android.permission.USB_PERMISSION" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_MEDIA_STORAGE" /> 
+0

Qu'est-ce que le modèle –

+0

Vérifiez votre chemin essayer de l'enregistrer. pour comparer avec existe votre chemin devrait être exactement le même –

+0

'/ dev/bus/001/002/a.txt'. C'est un chemin de système de fichier impossible non existant. Quel fichier: existe() vous a déjà dit. Vous devriez revenir ensuite et arrêter avec votre code. Maintenant, vous continuez comme si rien ne s'était passé. – greenapps

Répondre

0

Quelle est la version Android sur lequel vous exécutez ..

+0

I test sur Android 4 et 6 – user3441466

0

Si vous exécutez sur ou au-dessus de sucette vous devez demander des autorisations dans le code java. vérifier ce lien https://stackoverflow.com/a/33162451/7457753

+0

faire, mais encore exception throw – user3441466

+0

ce qui est l'exception –

+0

java.io.FileNotFoundException: /dev/bus/001/002/a.txt: opent a échoué: EACCES (autorisation refusée) – user3441466

0
/dev/bus/001/002/a.txt. 

Ce chemin est un système de fichiers non Existend impossible. Quel fichier: existe() vous a déjà dit. Vous devriez revenir ensuite et arrêter avec votre code. Maintenant, vous continuez comme si rien ne s'était passé.

Vous feriez mieux d'avoir demandé ou googlé «comment déterminer le chemin vers le lecteur de stylet USB».

Regardez bien le deuxième ou le troisième article retourné par getExternalFilesDirs().

Vous êtes sûr que votre appareil prend en charge OTG?

+0

J'essaie getExternalFilesDirs() et ne fonctionne pas, mon appareil prend en charge OTG – user3441466

+0

Veuillez nous indiquer les chemins que vous obtenez de getExternalFilesDirs() pour les deux périphériques. Dites si vous utilisez une carte micro SD en eux. Ce serait bien si vous montriez le code utilisé. – greenapps