Java: Fichier CSV Facile à Lire/Écrire
Je suis en train de travailler sur un programme qui nécessite un accès rapide à un CSV délimité par des virgules fichier de feuille de calcul.
Jusqu'à présent, j'ai été capable de lire facilement à l'aide d'un BufferedReader.
Cependant, maintenant, je veux être en mesure de modifier les données qu'il lit, puis l'exporter vers le format CSV.
La feuille de calcul contient des noms, des numéros de téléphone, adresses e-mail, etc. Et le programme des listes de chacun de données, et lorsque vous cliquez sur eux, il affiche une page avec des informations plus détaillées, également tiré à partir du fichier CSV. Sur cette page, vous pouvez modifier les données, et je veux être en mesure de cliquer sur un bouton "Enregistrer", puis exporter les données de retour à la ligne correspondante dans le fichier CSV--ou supprimer l'ancien, et ajouter de nouvelles.
Je ne suis pas très familier avec l'aide d'un BufferedWriter, ou quoi que ce soit, je devrait être en utilisant.
Ce que j'ai commencé à faire est de créer une classe personnalisée appelée FileIO. Il contient à la fois un BufferedReader et un BufferedWriter. Jusqu'à présent, il a une méthode qui retourne bufferedReader.readLine(), la lecture(). Maintenant, je veux une fonction appelée write(String ligne).
public static class FileIO {
BufferedReader read;
BufferedWriter write;
public FileIO (String file) throws MalformedURLException, IOException {
read = new BufferedReader(new InputStreamReader (getUrl(file).openStream()));
write = new BufferedWriter (new FileWriter (file));
}
public static URL getUrl (String file) throws IOException {
return //new URL (fileServer + file).openStream()));
FileIO.class.getResource(file);
}
public String read () throws IOException {
return read.readLine();
}
public void write (String line) {
String [] data = line.split("\\|");
String firstName = data[0];
//int lineNum = findLineThatStartsWith(firstName);
//write.writeLine(lineNum, line);
}
};
J'espère que quelqu'un a une idée de comment je peux faire cela?
- Pas de réponse à votre question en soi: savez-vous SuperCSV, facile à utiliser et polyvalent CSV lecture-écriture de la bibliothèque de sérieux qui facilite l'interaction avec les fichiers csv.
Vous devez vous connecter pour publier un commentaire.
Plutôt que de réinventer la roue, vous pourriez avoir un coup d'oeil à OpenCSV qui prend en charge la lecture et l'écriture de fichiers CSV. Voici des exemples de lecture & écrit
Le contenu d'un fichier est une séquence d'octets. CSV est un format de fichier texte, c'est à dire la séquence d'octets est interprété comme une séquence de caractères, où les retours à la ligne sont délimitées par des caractères de saut de ligne.
Par conséquent, si la longueur d'une ligne augmente, les caractères de toutes les lignes suivantes doivent être déplacés pour faire de la place pour les nouveaux personnages. De même, pour supprimer une ligne, vous devez déplacer le plus tard caractères pour combler l'écart. Qui est, vous ne pouvez pas mettre à jour une ligne dans un fichier csv (au moins pas lors de la modification de sa longueur) sans avoir à réécrire toutes les lignes suivantes dans le fichier. Pour des raisons de simplicité, j'aimerais réécrire l'intégralité du fichier.
Puisque vous avez déjà le code pour écrire et lire le fichier CSV, en l'adaptant devrait être simple. Mais avant de faire cela, il pourrait être intéressant de demander vous-même si vous utilisez le bon outil pour le travail. Si le but est de garder une liste de dossiers et modifier des enregistrements dans un formulaire, des programmes tels que Microsoft Access ou quel que soit le Open Office, l'équivalent s'appelle peut-être un ajustement plus naturel. Si vous INTERFACE utilisateur doit aller au-delà de ce que ces programmes fournissent, à l'aide d'une base de données relationnelle pour garder vos données est probablement un meilleur ajustement (plus efficace et plus souple qu'un fichier CSV).
Veuillez considérer Apache commons csv.
Pour vite comprendre l'api, il y a quatre classes:
Spécifie le format de fichier CSV et l'analyse d'entrée.
Analyse des fichiers CSV selon le format spécifié.
Affiche les valeurs dans un format CSV.
CSV enregistrer analysée à partir d'un fichier CSV.
Exemple De Code:
Unité de code de test: