English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Explication détaillée des flux IO en Java

Un flux est une série de données.

Lorsque des échanges de données ont lieu entre différents supports, JAVA utilise des flux pour réaliser. La source de données peut être un fichier, un base de données, un réseau, ou d'autres programmes.

Par exemple, lire les données du fichier dans le programme, du point de vue du programme, cela s'appelle un flux d'entrée.

Flux de bytes (lecture et écriture de données sous forme de bytes)

InputStream est un flux de bytes en entrée, il s'agit également d'une classe abstraite, qui ne fournit que des déclarations de méthodes, sans fournir des implémentations de méthodes spécifiques.

FileInputStream est une sous-classe de InputStream, nous allons prendre l'exemple de FileInputStream pour la lecture de fichiers.

package testIO;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Date;
public class testFile {
	public static void main(String[] args) throws IOException {
		File f=new File("F:/test/lol.txt");
		//Création d'un flux d'entrée basé sur le fichier. 
		FileInputStream fis=new FileInputStream(f);
		//Création d'un tableau de bytes, dont la longueur est égale à la longueur du fichier. 
		byte[] bs=new byte[(int) f.length()];
		System.out.println("Lecture de tout le contenu du fichier sous forme de flux de bytes : ");+fis.read(bs));
		for (byte b:bs){
			System.out.println(b);
		}
		fis.close();
	}
}

OutputStream est un flux de bytes en sortie, il s'agit également d'une classe abstraite, qui ne fournit que des déclarations de méthodes, sans fournir des implémentations de méthodes spécifiques.

FileOutputStream est une sous-classe de OutputStream, nous allons prendre l'exemple de FileOutputStream pour l'écriture de données.

package testIO;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class writeIO {
	public static void main(String[] args) throws IOException {
		File f=new File("F:/test/lol.txt");
		FileOutputStream fos=new FileOutputStream(f);
		byte data[]={87,88};
		fos.write(data);
		fos.close();
	}
}

Remarque : si le fichier lol n'existe pas, l'opération d'écriture créera automatiquement le fichier, et si le répertoire test n'existe pas, une exception sera levée.

Alors, si le répertoire test n'existe pas, comment faire pour que le programme le crée automatiquement ? Si le chemin est F:/test/yang/lol.txt, et test et yang n'existent pas ?

package testIO;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class writeIO {
	public static void main(String[] args) throws IOException {
		File f=new File("F:/test/yang/csdn/lol.txt");
		System.out.println(f.exists());
		File dir=f.getParentFile();
		//Obtenir le répertoire du fichier 
		if(!dir.exists()){
			dir.mkdirs();
			//Si le répertoire du fichier n'existe pas, il créera le répertoire inexistant
		}
		FileOutputStream fos=new FileOutputStream(f);
		byte data[]={87,88};
		fos.write(data);
		fos.close();
	}
}

Obtenir le répertoire du fichier dans le programme, si le répertoire n'existe pas, il sera créé

Résumé

Voici le contenu complet de l'explication détaillée des flux d'entrée-sortie en java de cet article, j'espère que cela aidera à beaucoup de gens. Les amis intéressés peuvent continuer à consulter d'autres sujets pertinents sur ce site. Si il y a des insuffisances, bienvenue à laisser des commentaires. Merci de votre soutien à ce site !

Déclaration : Le contenu de cet article est extrait du réseau, et appartient au propriétaire original. Le contenu est apporté par les utilisateurs d'Internet de manière volontaire et est téléversé, ce site n'a pas de propriété, n'a pas été traité par l'éditeur humain et n'assume pas la responsabilité juridique connexe. Si vous trouvez du contenu présumé de violation de droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour faire une plainte, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu présumé de violation de droits d'auteur.

Vous pourriez aussi aimer