2015-08-13 1 views
-1

J'ai une affectation java, et mes deux dernières erreurs sont présentées dans ce code. Pour un peu de contexte, mon code prend l'entrée d'une interface graphique et l'écrit dans un fichier texte. Je me rends compte que vous pourriez avoir besoin de plus de code, et je donnerai plus si nécessaire, je n'arrive juste pas à comprendre ces erreurs. Voici mon code:Java quelques erreurs lors de l'écriture au fichier texte?

public void dataWriter(String data, String fileName) throws IOException 
{ 
File file = getFileStreamPath(fileName); 

if (!file.exists()) 
{ 
    file.createNewFile(); 
} 

    try (FileOutputStream writer = openFileOutput(file.getName(), Context.MODE_PRIVATE)) // Error "cannot find symbol, variable MODE_PRIVATE" 
    { 
     for (String string = null, data)//error "variable data is already defined in dataWriter" 
     { 
      { 
      writer.write(string.getBytes()); 
      writer.flush(); 
      } 
     } 
    } 
    catch (Exception e) 
    { 

    } 

} 

Toute aide est grandement appréciée. Merci beaucoup!

+1

qu'attendez-vous pour '(string string = null, données)' faire? Ce n'est pas ce à quoi ressemble une boucle 'for' ... –

+0

Et de quelles erreurs parlez-vous? – csmckelvey

+0

Désolé, les erreurs sont écrites dans les commentaires dans mon code ci-dessus, à côté de la ligne qui donne l'erreur. – Paul

Répondre

0

De la question d'origine, il semble que vous essayez d'écrire dans un fichier. OK, quelque chose comme cela devrait fonctionner:

public void dataWriter(String data, String fileName) throws IOException { 

PrintWriter writer = new PrintWriter(new FileOutputStream(new File(fileName)); 

try { 
    writer.write(data); 
} catch (Exception e) { 
    System.err.println("Some exception"); 
} finally { 
    writer.close(); 
} 

Le problème que vous avez avec votre code ci-dessus est que la syntaxe de la boucle for en Java est très différent de la façon dont vous avez initialement déclaré.

Au lieu de for (String string = null, data)

Une boucle itérative for doit ressembler à ceci:

for (int i = 0; i < someDataStructure.size(); i++) 
    someDataStructure.get(i); 

Vous pouvez également faire une boucle for each si la structure des données itératives implémente. Cependant, tout cela mis à part, vous essayiez d'itérer en utilisant un FileOutputStream quand vous n'aviez pas de liste ou de tableau sur lequel itérer, si vous aviez passé dans une autre référence à un fichier ou une liste, l'itération aurait dû ressembler ceci:

dataWriter public void (Liste des données, string fileName) throws IOException {

PrintWriter writer = new PrintWriter(new FileOutputStream(new File(fileName)); 

try { 

    for (int i = 0; i < data.size(); i++) 
     writer.write(data); 

} catch (Exception e) { 
    System.err.println("Some exception"); 
} finally { 
    writer.close(); 
} 
+0

Cela fonctionne, merci beaucoup! @andrew – Paul

+0

vous êtes les bienvenus @Paul – andrewdleach

+0

Je suis en désaccord avec la décision d'afficher une réponse complète à une question de devoirs par principe. A-t-il appris quelque chose? Il avait un problème à comprendre la syntaxe de base pour la boucle ... – jgitter