2015-12-24 3 views
0

J'ai un fichier texte dans mon dossier de ressources et je dois pouvoir lire/supprimer/ajouter du texte. Je crois que je dois utiliser append donc j'ai essayé cela.Comment écrire/lire/supprimer le contenu d'un fichier texte situé dans mon dossier de ressources?

Files.write(Paths.get(Testing.class.getResource("/testresources/SearchList.txt").getPath()) 
, "the text".getBytes(), StandardOpenOption.APPEND); 

Cela me rend

Exception in thread "main" java.nio.file.InvalidPathException: Illegal char <:> at index 2: /C:/Users/Ben/workspace/Eve/bin/org/me/Testing/resources/SearchList.txt

Si quelqu'un pouvait me doit une certaine clarté à ce sujet, ce serait génial. Je vous remercie!

+0

On dirait qu'il se plaint de la 'C: /' quel type de système d'exploitation êtes-vous? Les fenêtres? – dolan

+0

Ouais, je suis sur la victoire 7 – Bioflame

+0

ya. Je pense que vous devriez être bien si ce chemin a résolu à '/ Users/Ben/workspace/Eve/bin/org/moi/Testing/resources/SearchList.txt' sans le' C:/' – dolan

Répondre

0

Cela a fonctionné pour moi bien:

Vous devez ajouter le fichier texte dans un dossier brut. Si le dossier brut n'existe pas dans votre répertoire de ressources, créez-en un. Et puis pour y accéder et écrire ou modifier, utilisez ceci:

OutputStream outputStream=getResources().openRawResource(R.raw.YourTextFile); 

puis pour lire à partir du fichier, vous devez faire

InputStream inputStream=getResources().openRawResource(R.raw.YourTextFile); 
+0

Comment créer un dossier brut? J'utilise Eclipse. – Bioflame

+0

Je n'ai pas utilisé eclipse depuis longtemps, mais je pense que lorsque vous faites un clic droit sur le dossier des ressources, il devrait donner une option pour le faire –

0

Un slash est automatiquement ajouté à votre chemin - /C:/Users/Ben/workspace/Eve/bin/org/me/Testing/resources/SearchList.txt

Beaucoup de solutions ont été proposées ici dans les réponses, Java NIO file path issue

Utilisez l'une des réponses mentionnées comme solution.

En outre, pour les fichiers destinés à être en pot, vous devez utiliser la méthode Pathspublic static Path get(URI uri) au lieu de public static Path get(String first,String... more) Voir How to get a path to a resource in a Java JAR file

+0

Je vais faire un fichier jar et l'utiliser sur plusieurs machines, je ne 'Pensez avoir la route directe vers le dossier fonctionnera alors. – Bioflame

+0

J'ai édité ma réponse, vous devez utiliser uri si le fichier est destiné à résider dans le pot –