2017-06-12 12 views
-2
String[][] EmployeeArray = new String [1000][25]; 

dies mein Array ist, hat es alle Informationen, die ich in sie brauchen schon, aber ich möchte von hier aus in eine Textdatei EmployeeFile rief alle Daten senden. Wie soll ich das machen?ich möchte eine TXT-Datei aus einem Array Daten senden

+0

serialisieren Sie es in JSON –

+0

In welcher Form möchten Sie Daten von diesem Array in der Datei haben? Sollte es eine CSV-Datei (Comma-Separated-Values) oder etwas anderes sein? – Pshemo

+2

Mögliches Duplikat von [Wie speichere ich eine Zeichenfolge in einer Textdatei mit Java?] (Https://stackoverflow.com/questions/1053467/how-do-i-save-a-string-to-a-text- Datei-Verwendung-Java) –

Antwort

1

Sie können es serialisiert, oder noch besser eine json Dekorationen/Formatierung zu tun und dann, dass in eine Datei schreiben ...

jusing json könnte so einfach sein wie:

String[][] x = { { "0-0", "0-1", "0-2" }, { "1-0", "1-1", "1-2" }, { "2-0", "2-1, "2-2" } }; 
try (Writer writer = new FileWriter("my2DArray.json")) { 
    Gson gson = new GsonBuilder().create(); 
    gson.toJson(x, writer); 
} 
0

Zu allererst Sie müssen Ihr Array durchlaufen und eine einzelne Zeichenfolge erstellen, die Ihre Daten enthält, die in die Datei geschrieben werden. Dies geschieht, damit Sie die neuen Zeilenzeichen an den gewünschten Stellen hinzufügen können.

String fileContents = new String(); 

for(int i=0; i<1000; i++) { 
    for(int j=0; j<25; j++) { 
    fileContents += EmployeeArray[i][j] 
    } 
    fileContents += "\n"; 
} 

Der obige Code ist sehr einfach und es ist ment, die Grundidee zu demonstrieren. Es wäre effizienter, einen StringBuilder zu verwenden, und ich denke, es gibt 100 Möglichkeiten, diese Zeilen weiter zu verbessern.

Dann können Sie die folgende Methode verwenden, um die Datei zu schreiben:

public boolean writeFile(String data, String path) { 
    try { 
     byte[] encoded = data.getBytes(StandardCharsets.UTF_8); 
     java.nio.file.Files.write(Paths.get(path), 
      encoded, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING); 
     return true; 
} catch(IOException e) { 
    e.printStackTrace(); 
} 

    return false; 
} 

Sie sollten vorsichtig sein, mit den Optionen StandardOpenOption.CREATE und StandardOpenOption.TRUNCATE_EXISTING. Sie überschreiben vorhandene Dateien. Manchmal müssen Sie an die Datei anhängen, passen Sie sie entsprechend an.

Die StandardOpenOption-Dokumentation finden Sie unter here. StandardOperation.APPEND ist praktisch für Protokollierungszwecke.

Beachten Sie auch, dass der verwendete Zeichensatz UTF8 ist. Es ist im Allgemeinen eine gute Idee, UTF8 zu verwenden, wenn es Ihre Bedürfnisse deckt. Wenn Sie seltsame Zeichen in Ihren Daten finden, müssen Sie möglicherweise auch entsprechend anpassen.

Verwandte Themen