Lecture et écriture Java dans un fichier. Fichier de classe. Travailler avec des fichiers et des répertoires. FileOutputStream – création et écriture d'un fichier

Chaque application et programme a la capacité d’écrire quelque chose dans un fichier. DANS cette leçon Je vais vous montrer comment écrire des données dans un fichier, puis les lire à partir de là.

Quels problèmes allons-nous résoudre dans cette leçon ?

Travaux préparatoires

Créons un projet simple, pas nécessairement un projet Maven, puisque nous n'aurons pas besoin de bibliothèques supplémentaires.

Lire, écrire et créer des fichiers

Cette page traite des détails de la lecture, de l'écriture, de la création et de l'ouverture de fichiers. Note. Les nouvelles méthodes de création de fichiers vous permettent de spécifier un ensemble facultatif d'attributs initiaux pour le fichier. La page Gérer les métadonnées décrit les attributs des fichiers et comment y accéder et les installer.

Méthodes couramment utilisées pour les petits fichiers

Cette page contient sujets suivants.

Lire tous les octets ou lignes d'un fichier

Si vous avez un fichier de petite taille et que vous souhaitez lire son contenu en un seul passage, vous pouvez utiliser la méthode ou . Ces méthodes s'occupent de la plupart du travail à votre place, comme l'ouverture et la fermeture du flux, mais ne sont pas conçues pour gérer des fichiers volumineux.

Une fois le projet créé, créez une classe WorkInFile.java et écrivez-y la construction standard principal:

Public static void main(String args)( //nous appellerons nos méthodes ici)

Créons maintenant une classe qui aura des méthodes pour travailler avec des fichiers, et appelons-la FileWorker.java toutes les méthodes qu'il n'a pas privé sera tel que nous puissions y accéder sans instance de cette classe.

Écrire tous les octets ou lignes dans un fichier

Vous pouvez utiliser l'une des méthodes d'écriture pour écrire des octets ou des chaînes dans un fichier. L'extrait de code suivant montre comment utiliser la méthode write. Pour ouvrir le fichier en lecture, vous pouvez utiliser cette méthode. Cette méthode renvoie un flux d'entrée sans tampon pour lire les octets d'un fichier.

Vous pouvez créer un fichier, l'ajouter à un fichier ou écrire dans un fichier à l'aide de la méthode. Cette méthode ouvre ou crée un fichier pour écrire des octets et renvoie un flux de sortie sans tampon. Si aucune option d'ouverture n'est donnée et que le fichier n'existe pas, un nouveau fichier.

Comment écrire dans un fichier ?

En classe FileWorker.java créons-en un qui écrira dans un fichier et appellera cette méthode écrire(Chaîne texte; Chaîne nomFichier):

Public static void write(String fileName, String text) ( //Définition du fichier Fichier fichier= nouveau fichier (nom de fichier);

essayez ( //vérifiez que si le fichier n'existe pas, créez-le if(!file.exists())( file.createNewFile(); ) //PrintWriter offrira la possibilité d'écrire dans le fichier PrintWriter out = new PrintWriter (file.getAbsoluteFile() ); try ( //Écrire le texte dans le fichier out.print(text); ) enfin ( //Après quoi nous devons fermer le fichier //Sinon, le fichier ne sera pas écrit.close( ); ) ) catch(IOException e) ( throw new RuntimeException(e);

Méthodes pour les canaux et les tampons d'octets Si le fichier existe, il est tronqué. L'exemple suivant ouvre un fichier journal. Si le fichier n'existe pas, il est créé. Si le fichier existe, il est ouvert pour être ajouté. L'interface fournit fonctions de base lire et écrire. La possibilité de se déplacer vers différents points d'un fichier, puis de lire ou d'écrire à cet emplacement, permet accès aléatoire au fichier. Fichiers à accès aléatoire à récupérer Informations Complémentaires . Avec le système de fichiers par défaut, vous pouvez utiliser ce canal d'octets disponible pour donner accès à des fonctions plus avancées, mappant ainsi la zone de fichier directement en mémoire pour accès rapide

, verrouiller une zone d'un fichier afin que d'autres processus ne puissent pas y accéder, ou lire et écrire des octets à partir d'une position absolue sans affecter la position actuelle du tube. S'il vous plaît payer attention particulière

le fait qu'après avoir écrit des données dans un fichier, nous devons le fermer, ce n'est qu'après cette action que les données seront écrites dans le fichier.

Private static String text = "Ce nouveau texte \nCe nouveau texte2\nCe nouveau texte3\nCe nouveau texte4\n"; chaîne statique privée fileName = "C://blog/a.txt" ; public static void main (String args) lance FileNotFoundException ( // Écrire dans le fichier FileWorker.write (fileName, text); ) Après quoi nous recevrons un nouveau fichier " a.txt

» avec le contenu suivant :

Façons de créer des fichiers réguliers et temporaires Si aucun de ces paramètres n'est spécifié, le canal est ouvert en lecture. L'extrait de code suivant lit le fichier et l'imprime sur sortie standard . Ce code crée un fichier journal ou s'ajoute à un fichier journal s'il en existe déjà un. Vous pouvez créer fichier vide Avec attributs en utilisant la méthode. Si vous ne spécifiez aucun attribut, le fichier est créé avec les attributs par défaut. L'extrait de code suivant crée un fichier avec les attributs par défaut.

Quels problèmes allons-nous résoudre dans cette leçon ?

Si vous ouvrez un nouveau flux de sortie et le fermez immédiatement, un fichier vide sera créé. La première méthode permet au code de spécifier un répertoire pour le fichier temporaire, et la seconde méthode crée un nouveau fichier dans le répertoire fichiers temporaires défaut. Les deux méthodes vous permettent de spécifier un suffixe pour le nom de fichier, et la première méthode vous permet également de spécifier un préfixe. L'extrait de code suivant donne un exemple de la deuxième méthode.

Ce nouveau texte Ce nouveau texte2 Ce nouveau texte3 Ce nouveau texte4

2. Comment lire un fichier ?

Maintenant en classe FileWorker Créons une méthode de lecture d'un fichier, également statique :

Public static String read(String fileName) lance FileNotFoundException ( //Cet objet spécial pour construire une chaîne StringBuilder sb = new StringBuilder(); exist(fileName); try ( //Objet pour lire un fichier dans un tampon BufferedReader in = new BufferedReader (new FileReader(file.getAbsoluteFile())); try ( //Dans une boucle, lit le fichier ligne par ligne String s; while ((s = in.readLine()) != null) ( sb.append(s ); sb.append(" \n"); ) ) enfin ( //N'oubliez pas non plus de fermer le fichier in.close(); ) ) catch(IOException e) ( throw new RuntimeException(e); ) / /Renvoyer le texte reçu du fichier return sb.toString( ; )

Encodage et encodage des caractères

Le résultat de l’exécution de ce fichier ressemblera à ce qui suit. Le format spécifique du nom du fichier temporaire dépend de la plateforme. Tout d'abord, regardons différentes classes, capables de lire et d'écrire des flux de caractères.

Lecture à partir d'un exemple de fichier texte

Les exemples de code ici vous donnent tout ce dont vous avez besoin pour lire et écrire des fichiers immédiatement, et si vous êtes pressé, vous pouvez les utiliser sans savoir en détail comment ils fonctionnent. Les éléments clés à retenir sont les suivants. Vous pouvez lire des fichiers en utilisant ces classes.

StringBuilder - quelle est la différence entre une chaîne normale ? Le fait est que lorsque vous ajoutez du texte à StringBuilder, il n'est pas recréé, mais String se recrée lui-même.

De plus, s'il n'y a pas de fichier, la méthode rejettera Exception.

Pour vérifier l'existence d'un fichier, nous allons créer une méthode, puisque nous aurons toujours besoin de cette vérification dans les méthodes suivantes :

Un vide statique privé existe (String fileName) lève FileNotFoundException ( File file = new File(fileName); if (!file.exists())( throw new FileNotFoundException(file.getName()); ) )

Cela enregistre les données afin que vous puissiez les traiter sur une ligne ou n'importe où au lieu de caractère par caractère. Lire 649 octets. Bien sûr, si vous aviez un "vrai" fichier binaire- par exemple une image - vous ne voudriez pas la convertir en chaîne et l'imprimer sur la console comme ci-dessus.

Le fichier de sortie ressemble maintenant à ceci. Nous écrivons du texte dans un fichier. Dans l'exemple suivant, nous écrivons du texte sous forme de données binaires dans un fichier. En règle générale, bien sûr, vous souhaiterez probablement écrire un format de fichier propriétaire ou quelque chose comme ça.

Maintenant, vérifions :

Private static String text = "Ce nouveau texte \nCe nouveau texte2\nCe nouveau texte3\nCe nouveau texte4\n"; chaîne statique privée fileName = "C://blog/a.txt" ; public static void main(String args) throws FileNotFoundException ( //Tentative de lecture d'un fichier inexistant FileWorker.read("no_file.txt"); //Lecture d'un fichier String textFromFile = FileWorker.read(fileName); System.out .println(textFromFile) ;

Dans le premier cas, lorsque le fichier n'existe pas, nous obtiendrons ceci :

Exception dans le fil de discussion "principal" java.io.FileNotFoundException : no_file.txt sur com.devcolibri.tools.FileWorker.read(FileWorker.java:31)

Tous ces flux représentent la source d’entrée et la destination de sortie. Un flux peut être défini comme une séquence de données. Il existe deux types de flux. Nous verrons un par un les exemples les plus couramment utilisés -. Vous trouverez ci-dessous un exemple qui utilise ces deux classes pour copier un fichier d'entrée vers un fichier de sortie - . Nous pouvons réécrire l'exemple ci-dessus qui nous permet d'utiliser ces deux classes pour copier le fichier d'entrée dans le fichier de sortie -.

Propriétés et méthodes de la classe File

Erreur type. . Comme décrit ci-dessus, un flux peut être défini comme une séquence de données. Voici la hiérarchie des classes pour gérer les flux d’entrée et de sortie.


Ce flux est utilisé pour lire les données des fichiers. Le constructeur suivant prend un nom de fichier sous forme de chaîne pour créer un objet de flux d'entrée pour lire le fichier -.

Dans le second cas, nous recevrons le contenu du fichier sous forme de chaîne. ( Pour ce faire, commentez le premier cas)

3. Comment mettre à jour le fichier ?

Comment ça se fait Mise à jour pour les fichiers, il n'y en a pas, mais il existe un moyen de le mettre à jour, pour cela vous pouvez l'écraser.

Créons une méthode mise à jour en classe FileWorker :

La mise à jour publique du vide statique (String nameFile, String newText) lève FileNotFoundException (existent (fileName); StringBuilder sb = new StringBuilder (); String oldFile = read (nameFile); sb.append (oldFile); sb.append (newText); write (nameFile, sb.toString());

Classes FileReader et FileWriter

Le constructeur suivant utilise un objet fichier pour créer un objet de flux d'entrée afin de lire le fichier. Il existe d'autres flux d'entrée importants pour en savoir plus informations détaillées vous pouvez vous référer aux liens suivants. Le flux créera le fichier s'il n'existe pas déjà avant de l'ouvrir pour la sortie. Le constructeur suivant prend un nom de fichier sous forme de chaîne pour créer un objet de flux d'entrée à écrire dans le fichier -.

Le constructeur suivant accepte un objet fichier pour créer un objet de flux de sortie à écrire dans le fichier. Il existe d'autres flux de sortie importants, pour plus de détails, vous pouvez vous référer aux liens suivants. Un répertoire est un fichier pouvant contenir une liste d’autres fichiers et répertoires.

Ici, nous lisons ancien fichier dans StringBuilder puis ajoutez-y nouveau texte et écris-le à nouveau. Veuillez noter que pour cela nous utilisons nos propres méthodes.

Suite à la mise à jour du fichier :

Private static String text = "Ce nouveau texte \nCe nouveau texte2\nCe nouveau texte3\nCe nouveau texte4\n"; chaîne statique privée fileName = "C://blog/a.txt" ; public static void main (String args) lance FileNotFoundException ( //Mise à jour du fichier FileWorker.update(fileName, "This new text"); )

Il y en a deux méthodes utiles- des utilitaires de fichiers pouvant être utilisés pour créer des répertoires. La manipulation de fichiers texte est une compétence qui vous sera très utile dans votre carrière de programmeur. Dans cette section, vous apprendrez comment ouvrir et écrire dans un fichier texte. Mais par fichier texte, nous entendons simplement un fichier contenant du texte - juste comme ça !

La première chose que nous ferons est d'ouvrir le fichier texte et de lire son contenu. Ajoutez une instruction import juste en dessous de la ligne du package et avant le nom de la classe. La fenêtre d'encodage ressemblera à ceci. Pour résoudre tout problème avec notre gestion de fichiers, ajoutez ce qui suit à la méthode principale.

nous obtiendrons le contenu suivant du fichier " Après quoi nous recevrons un nouveau fichier "«:

Ce nouveau texte Ce nouveau texte2 Ce nouveau texte3 Ce nouveau texte4 Ce nouveau texte

4. Comment supprimer un fichier ?

Dans la même classe utilitaire FileWorker ajoutons la méthode delete, ce sera très simple puisque l'objet a Déposer il existe déjà une méthode supprimer():

La suppression statique publique du vide (String nameFile) lève FileNotFoundException ( exist (nameFile); new File (nameFile).delete (); )

Nous vérifions :

Pour ouvrir un fichier texte, créons nouvelle classe. Une fois votre nouvelle classe créée, ajoutez les trois instructions d'importation suivantes. Votre nouvelle classe devrait ressembler à ceci. Nous allons créer un nouvel objet à partir de cette classe pour lire le fichier. Tout ce que nous faisons ici est de transmettre un nom de fichier, puis de transmettre le nom de fichier dans le champ chemin.

Nous devons maintenant créer une méthode qui renvoie toutes les lignes de code de fichier texte. Les lignes seront conservées dans un tableau. Ajoutez la déclaration de méthode suivante, qui ouvrira le fichier. Ne vous inquiétez pas du soulignement rouge : il disparaîtra dès que nous ajouterons le code.

Chaîne statique privée fileName = "C://blog/a.txt" ; public static void main (String args) lance FileNotFoundException ( //Suppression d'un fichier FileWorker.delete(fileName); )

Après quoi le fichier sera supprimé.

Règles de réimpression du site www.site

Cher visiteur du projet !

Dans ce document, vous pourrez découvrir dans quelles conditions vous pouvez utiliser les éléments du site www..d. etc.

Vous êtes autorisé à utiliser librement tout document à vos propres fins, sous réserve des conditions suivantes :

Le tableau contiendra toutes les lignes du fichier texte. Chaque méthode traitant de la lecture de fichiers texte en nécessite une. Cela lit les octets d'un fichier texte et chaque octet est un caractère unique. Vous pouvez lire des lignes entières de texte plutôt que des caractères individuels.

Comme son nom l'indique, il est utilisé pour lire des lignes entières plutôt que des caractères individuels. Tous les caractères du fichier sont ensuite stockés en mémoire, en attente d'être manipulés. Avant de pouvoir lire des lignes de texte, nous devons configurer un tableau. Chaque position du tableau peut contenir une ligne complète de texte. Ajoutez donc les deux lignes suivantes à votre code.

Contenu de la leçon ou de l'article une fois réimprimé, il ne doit pas être sujet à modification ou altération. Toutes les leçons et articles publiés sur le site doivent être réimprimés tels quels. Vous n'avez pas le droit de couper, corriger ou autrement déformer le document republié. Mais si cela est d'une importance vitale, vous pouvez contacter l'administrateur du projet www. Sans le consentement écrit de l'administrateur, la modification du document est interdite !!!

Sur à l'heure actuelle nous définirons le nombre de lignes dans le fichier texte. Évidemment, les fichiers texte peuvent contenir un nombre illimité de lignes, et nous ne savons généralement pas combien. Nous allons écrire une méthode distincte qui obtient le nombre de lignes dans un fichier texte. Le nombre de positions dans le tableau est défini sur le nombre de lignes.

Exemples de création d'objets Fichier

Nous mettons cela entre crochets. Pour placer toutes les lignes de texte d’un fichier à chaque position du tableau, nous avons besoin d’une boucle. La boucle recevra chaque ligne de texte et placera chaque ligne dans un tableau. Ajoutez ce qui suit à votre code. La ligne qui accède aux lignes de texte et les stocke dans un tableau est la suivante.

A la fin du document réimprimé Vous devez insérer un lien vers le site www.site.

Lien vers le site, doit être fonctionnel (lorsqu’on clique dessus, il faut se rendre sur le site de l’auteur). Si vous avez réimprimé un document, assurez-vous de vérifier le lien pour vous assurer qu'il fonctionne.

Le package java.io contient presque toutes les classes dont vous pourriez avoir besoin pour effectuer des entrées et des sorties en Java. Tous ces flux sont représentés par un flux d'entrée et une adresse de sortie. Le flux du package java.io prend en charge diverses données telles que des primitives, des objets, des symboles localisés, etc.

Après le signe égal, nous avons ce qui suit. Après avoir lu la chaîne, nous stockons la chaîne dans une position du tableau. Il reste maintenant deux lignes de code supplémentaires pour ajouter la méthode. Ajoutez donc ces lignes à votre code. La chaîne renvoyée renvoie l'intégralité du tableau. Veuillez noter que le nom du tableau n'est pas requis crochets. Une fois que vous avez ajouté le code, tous ces vilains traits de soulignement devraient disparaître. Votre méthode devrait alors ressembler à ceci.

Travailler avec des fichiers à l'aide des classes FileInputStream et FileOutputStream

Cependant, le problème réside dans le nombre de lignes. Nous devons parcourir n'importe quel fichier texte et compter le nombre de lignes qu'il contient. C'est le nombre de lignes du fichier texte. Pour arrondir les lignes de texte, nous avons ce qui suit. Mais il dit simplement "lisez chaque ligne de texte et arrêtez-vous lorsque zéro est atteint". Ainsi, au lieu de coder en dur le nombre de lignes que nous pouvons appeler notre nouvelle méthode et obtenez le nombre de lignes dans n'importe quel fichier texte.

Flux

Flux en Java sont définis comme une séquence de données. Il existe deux types de flux :

  • Flux d'entrée– Le flux d’entrée est utilisé pour lire les données de la source.
  • Flux de sortie– Le flux de sortie est utilisé pour écrire des données vers sa destination.

Java fournit un support solide mais flexible pour les E/S liées aux fichiers et au réseau, mais ce manuel Seules les fonctions de base liées aux threads et aux E/S sont couvertes. Examinons les exemples les plus courants dans l'ordre.

Configurez une variable de chaîne pour contenir le nom du fichier texte. À ce stade, vous devez créer un fichier texte quelque part sur votre ordinateur. Créez un fichier texte similaire sur votre ordinateur. Faites attention à l'endroit où vous l'avez enregistré car vous avez besoin du chemin du fichier. Modifiez le chemin du fichier si nécessaire. On peut alors appeler une méthode qui ouvre le fichier.

Mais pouvons-nous le faire en essayant ? bloc de blocage. Cela suffit pour transmettre au constructeur le chemin d'accès au fichier dont il a besoin. Après le mot « attraper », nous avons une paire de parenthèses. Entre parenthèses, nous avons ce qui suit. Cela donnera à l'utilisateur des informations sur ce qui n'a pas fonctionné. Avant de voir un exemple de message d'erreur, parcourez toutes les lignes du fichier texte en imprimant chacune d'elles.

Flux d'octets

Les flux d'octets en Java sont utilisés pour effectuer l'entrée et la sortie d'octets de 8 bits. Bien qu'il existe de nombreuses classes associées aux flux d'octets, les classes les plus couramment utilisées sont FileInputStream et FileOutputStream. Vous trouverez ci-dessous un exemple illustrant l'utilisation des données de deux classes pour copier d'un fichier à un autre.

Remarque sur l'exemple :

Exemple

importer java.io.* ; classe publique FileCopy ( public static void main(String args) lève IOException ( FileInputStream fileIn = null; FileOutputStream fileOut = null; try ( fileIn = new FileInputStream("file.txt"); fileOut = new FileOutputStream("copied_file.txt") ; int a; // Copie du contenu du fichier.txt while ((a = fileIn.read()) != -1) ( fileOut.write(a); // Lecture du contenu du fichier.txt et écriture dans le fichier copié_file. txt ) )finalement ( if (fileIn != null) ( fileIn.close(); ) if (fileOut != null) ( fileOut.close(); ) ) ) )

Contenu du fichier.txt

L'étape suivante consiste à compiler le programme Java et à l'exécuter, ce qui créera un fichier copié_file.txt avec le même contenu que celui trouvé dans file.txt. Plaçons donc le code indiqué dans le fichier FileCopy.java et exécutons prochaine action:

Flux de personnages

Les flux d'octets en Java autorisent l'entrée et la sortie d'octets de 8 bits, tandis que les flux de caractères sont utilisés pour l'entrée et la sortie Unicode de 16 bits. Bien qu'il existe de nombreuses classes associées aux flux de caractères, les classes les plus couramment utilisées sont FileReader et FileWriter. Malgré le fait que le FileReader interne utilise FileInputStream et que FileWriter utilise FileOutputStream, la principale différence est que FileReader lit deux octets à la fois, tandis que FileWriter écrit deux octets en même temps.

Nous pouvons reformuler l'exemple ci-dessus dans lequel deux classes données sont utilisées pour copier un fichier d'entrée (avec des caractères Unicode) vers un fichier de sortie.

Remarque sur l'exemple : Pour copier un fichier, vous devez créer un fichier file.txt avec du contenu quelconque ou vide dans le dossier du projet.

Exemple

importer java.io.* ; public class FileCopy ( public static void main(String args) lance IOException ( FileReader fileIn = null; FileWriter fileOut = null; try ( fileIn = new FileReader("file.txt"); fileOut = new FileWriter("copied_file.txt") ; int a; while ((a = fileIn.read()) != -1) ( fileOut.write(a); ) ) enfin ( if (fileIn != null) ( fileIn.close(); ) if (fileOut != null) ( fileOut.close(); ) ) ) )

Considérons maintenant le fichier file.txt avec le contenu suivant :

Contenu du fichier.txt

L'étape suivante consiste à compiler le programme et à l'exécuter, ce qui créera un fichier copié_file.txt avec le même contenu que file.txt. Plaçons donc le code indiqué dans le fichier FileCopy.java et effectuons l'action suivante :

$javac FileCopy.java $java FileCopy

Flux standards

Tous les langages de programmation prennent en charge les entrées/sorties standard, où le programme utilisateur peut fournir une entrée via le clavier et une sortie sur l'écran de l'ordinateur. Si vous êtes familier avec les langages de programmation C ou C++, vous devez en connaître trois appareils standards STDIN, STDOUT et STDERR. De même, Java fournit les trois flux standards suivants :

  • Entrée standard - utilisée pour traduire les données dans le programme utilisateur, le clavier est généralement utilisé comme flux standard entrée, représentée par System.in.
  • Sortie standard – Elle est produite pour sortir les données reçues dans le programme utilisateur et généralement l'écran de l'ordinateur est utilisé comme flux de sortie standard, représenté par System.out.
  • Erreur standard - utilisée pour afficher les données d'erreur reçues dans le programme utilisateur, le plus souvent l'écran de l'ordinateur sert de flux standard de messages d'erreur, représentés par System.err.

Ci-dessous se trouve programme simple qui crée un InputStreamReader pour lire le flux d'entrée standard avant que l'utilisateur ne saisisse "q":

Exemple

importer java.io.* ; public class ReadConsole ( public static void main(String args) throws IOException ( InputStreamReader inStRe = null; try ( inStRe = new InputStreamReader(System.in); System.out.println("Entrez les caractères, le caractère 'q' pour quitter." ); char a; faire ( a = (char) inStRe.read(); System.out.print(a); ) while(a != "q" )finally ( if (inStRe != null) ( inStRe .close (); ) ) ) )

Plaçons le code ci-dessus dans le fichier ReadConsole.java et essayons de le compiler et de l'exécuter selon la façon dont il est présenté dans prochain programme. Ce programme continue de lire et d'afficher le même caractère jusqu'à ce que "q" soit enfoncé :

$javac ReadConsole.java $java ReadConsole Entrez les caractères, "q" pour quitter..su q q

Lire et écrire un fichier

Comme indiqué ci-dessus, un flux est une séquence de données. InputStream est utilisé pour lire les données de la source, OutputStream est utilisé pour écrire des données vers la destination.

Vous trouverez ci-dessous une hiérarchie de classes pour gérer les flux d'entrée et de sortie.

Dans ce didacticiel, nous examinerons deux flux importants : FileInputStream et FileOutputStream.

Stream FileInputStream - lecture à partir d'un fichier

FichierInputStream est un flux utilisé en Java pour lire les données d'un fichier. Des objets peuvent être créés lors de l'utilisation mot-clé nouveau, plusieurs types de constructeurs sont disponibles.

Le constructeur présenté utilise un nom de fichier comme flux pour créer un objet de flux d'entrée pour lire le fichier :

InputStream a = new FileInputStream("D:/myprogramm/java/test");

Le constructeur ci-dessous utilise un fichier objet pour créer un objet de flux d'entrée afin de lire le fichier. Nous créons d’abord un fichier objet en utilisant la méthode File() comme suit :

Fichier a = new File("D:/myprogramm/java/test"); InputStream a = nouveau FileInputStream(a);

Maintenant que vous avez reçu un objet InputStream, vous devez vous familiariser avec la liste suivante de méthodes d'assistance qui peuvent être utilisées pour lire un flux ou effectuer d'autres opérations sur le flux.

Méthode et description
1 public void close() lance IOException()
Cette méthode en Java ferme le flux du fichier de sortie. Libère tout ressources système associé au fichier. Lève une IOException.
2 protected void finalize() lance IOException()
Cette méthode efface la connexion au fichier. Vous permet de vérifier l'appel méthode privée ce week-end flux de fichiers en l'absence de toute référence à ce flux. Lève une IOException.
3 public int read (int r) lance IOException ()
Cette méthode en Java lit les octets de données spécifiés à partir du InputStream. Retour de données tapez int. Renvoie l'octet de données suivant, en revenant à -1 à la fin du fichier.
4 public int read (octet r) lance IOException ()
Cette méthode lit les octets r.length du flux d’entrée dans un tableau. Renvoie le nombre total d'octets lus. A la fin du fichier, il reviendra à -1.
5 public int disponible() lance IOException()
Renvoie le nombre d'octets pouvant être lus à partir du flux du fichier d'entrée. Renvoie des données de type int.

Il existe également d'autres flux d'entrée disponibles, dont des informations plus détaillées sont fournies sur les liens suivants (les liens sont temporairement inactifs) :

FileOutputStream – création et écriture d'un fichier

FichierOutputStream est un flux utilisé en Java pour créer un fichier puis y écrire. Le flux créera le fichier s'il n'existe pas avant de l'ouvrir pour la sortie.

Le constructeur présenté utilise le nom de fichier comme chaîne pour créer un objet de flux d'entrée permettant d'écrire le fichier en Java :

OutputStream a = new FileOutputStream("D:/myprogramm/java/test")

Le constructeur ci-dessous utilise un fichier objet pour créer un objet de flux de sortie à écrire dans le fichier. Nous créons d’abord un fichier objet en utilisant la méthode File() comme suit :

Fichier a = new File("D:/myprogramm/java/test"); OutputStream a = nouveau FileOutputStream(a);

Maintenant que vous avez reçu un objet OutputStream, vous devez vous familiariser avec la liste suivante de méthodes d'assistance qui peuvent être utilisées pour enregistrer un flux ou effectuer d'autres opérations sur le flux.

Il existe également d'autres flux de sortie disponibles, dont des informations plus détaillées peuvent être trouvées sur les liens suivants (les liens sont temporairement inactifs) :

Exemple

L'exemple suivant montre un InputStream et un OutputStream - flux pour lire, créer et écrire un fichier :

Importer java.io.* ; public class File ( public static void main(String args) ( try ( char c = ("a","b","c"); OutputStream output = new FileOutputStream("file.txt"); // Créer un texte fichier pour (int i = 0; i

Le code Java présenté ci-dessus créera un fichier.txt et écrira les caractères donnés au format char. La même chose sera sortie sur l’écran de sortie standard.

Système de fichiers et navigation E/S

Il existe un certain nombre d'autres cours que nous examinerons afin de nous familiariser avec les bases de la navigation dans système de fichiers et E/S.

  • Classe de fichier
  • Classe FileReader
  • Classe FileWriter

Répertoires en Java

En Java, un répertoire est représenté par un fichier, qui peut contenir une liste d'autres fichiers et répertoires. À l'aide de l'objet File, vous pouvez créer un répertoire, parcourir la liste des fichiers présents dans le répertoire. Pour des informations plus détaillées, consultez la liste de toutes les méthodes pouvant être appelées à partir d'un objet File lorsqu'il est associé à des répertoires.

Création de répertoires

Il existe deux méthodes utilitaires de fichiers qui peuvent être utilisées pour créer des répertoires :

  • La méthode mkdir() permet de créer un dossier en Java, renvoyant vrai si l'opération réussit, et false si elle échoue. Un échec indique que le chemin spécifié dans l'objet File existe déjà ou que le répertoire ne peut pas être créé en raison de chemin complet n'existe pas encore.
  • La méthode mkdirs() crée un répertoire et tous ses répertoires parents.

L'exemple suivant montre la création du dossier "/java/proglang/newdir" :

Exemple

importer java.io.File ; public class CreateDirectory ( public static void main(String args) ( String nameDir = "/java/proglang/newdir"; File a = new File(nameDir); // Crée un dossier et tous les répertoires parents sur le disque a.mkdirs() ; ) )

Compiler et exécuter code suivant pour créer le répertoire "/java/proglang/newdir".

Note? Java génère automatiquement des séparateurs de chemin sous UNIX et Windows en fonction de conventions. Lorsque vous utilisez la barre oblique (/) lorsque vous travaillez avec Java dans Système Windows, le chemin est résolu correctement.

Liste des fichiers dans un dossier

La méthode list(), représentée par un objet File, peut être utilisée pour fournir une liste de tous les fichiers et répertoires présents dans un dossier donné, comme suit :

Exemple

importer java.io.File ; public class ReadDirectory ( public static void main(String args) ( File pathDir = null; String pathsFilesAndDir; try ( // Créer un nouveau fichier objet pathDir = new File("/NetBeans 8.2/Projects/ReadDirectory/ReadDirectory/"); / / Le répertoire spécifié doit exister sur le disque, sinon le programme générera une erreur // Tableau de fichiers et dossiers pathsFilesAndDir = pathDir.list(); for(String path:pathsFilesAndDir) ( // Afficher une liste de fichiers et de répertoires Système .out.println(path); ) )catch(Exception e) ( // Si une erreur s'est produite e.printStackTrace(); ) ) )

Cela produira la sortie suivante basée sur les répertoires et fichiers disponibles dans votre répertoire /NetBeans 8.2/Projects/ReadDirectory/ReadDirectory/ :

Construire build.xml manifest.mf nbproject src ReadDirectory



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :