1. Lire le contenu du fichier par octets
public class ReadFromFile {public static void readFileByBytes(String fileName) {File file = new File(fileName);InputStream in = null;try {System.out.println("Lire le contenu du fichier en octets, un mot à la fois Section : ");//Lire un octet à la fois dans = new FileInputStream(file);int tempbyte;while ((tempbyte = in.read()) != -1) {System.out.write(tempbyte);}in.close();} catch (IOException e) {e.printStackTrace();return;}try {System.out.println("Lire le fichier en octets Contenu, lire plusieurs octets à la fois : ");// Lire plusieurs octets à la fois byte[] tempbytes = new byte[100];int byteread = 0;in = new FileInputStream(fileName);ReadFromFile.showAvailableBytes(in);//Lire plusieurs octets dans le tableau d'octets, byteread est le nombre d'octets lus en même temps tandis que ((byteread = in.read(tempbytes)) != - 1) { System.out.write(tempbytes, 0, byteread);}} catch (Exception e1) {e1.printStackTrace();} enfin {if (in != null) {essayez {in.close();} catch (IOException e1) {}}}}
2. Lire le contenu du fichier par caractère
public static void readFileByChars(String fileName) {File file = new File(fileName);Reader reader = null;try {System.out.println("Lire le contenu du fichier en unités de caractères, un octet à la fois :"); /Lire un caractère à la fois reader = new InputStreamReader(new FileInputStream(file));int tempchar;while ((tempchar = reader.read()) != -1) {// Pour Windows, lorsque les deux caractères /r/n sont ensemble, ils représentent une nouvelle ligne. // Mais si ces deux caractères sont affichés séparément, les lignes seront modifiées deux fois. // Donc, bloquez /r, ou bloquez /n. Sinon, il y aura beaucoup de lignes vides. if (((char) tempchar) != '/r') {System.out.print((char) tempchar);}}reader.close();} catch (Exception e) {e.printStackTrace();} essayez {System.out.println("Lire le contenu du fichier en unités de caractères, lire plusieurs octets à la fois :");//Lire plusieurs caractères à la fois char[] tempchars = new char[30];int charread = 0;reader = new InputStreamReader(new FileInputStream(fileName));//Lire plusieurs caractères dans le tableau de caractères, charread est le nombre de caractères lus à la fois tandis que ((charread = reader.read(tempchars)) != -1 ) {// Protège également /r et n'affiche pas if ((charread == tempchars.length)&& (tempchars[tempchars.length - 1] != '/r')) {System.out.print(tempchars);} else {for (int i = 0; i < charread; i++) {if (tempchars[i] == '/r') {continue;} else {System.out. print(tempchars[i]);}}}}} catch (Exception e1) {e1.printStackTrace();} enfin {if (reader != null) {try {reader.close();} catch (IOException e1) {}}}}
3. Lire le contenu du fichier ligne par ligne
public static void readFileByLines(String fileName) {File file = new File(fileName);BufferedReader reader = null;try {System.out.println("Lire le contenu du fichier en unités de ligne, lire une ligne entière à la fois :") ;reader = new BufferedReader(new FileReader(file));String tempString = null;int line = 1;//Lire une ligne à la fois jusqu'à ce que null soit lu comme fin du fichier tandis que ((tempString = reader.readLine()) != null) {//Afficher le numéro de ligne System.out.println("line " + line + ": " + tempString);line++;}reader.close();} catch (IOException e) {e.printStackTrace();} enfin {if (reader != null) {try {reader.close();} catch (IOException e1) {}}}}
4. Lire au hasard le contenu du fichier
public static void readFileByRandomAccess(String fileName) {RandomAccessFile randomFile = null;try {System.out.println("Lire aléatoirement le contenu d'un fichier :");//Ouvrir un flux de fichiers à accès aléatoire en mode lecture seule randomFile = new RandomAccessFile ( fileName, "r"); // Longueur du fichier, nombre d'octets fileLength = randomFile.length( // Lit la position de départ du fichier int); beginIndex = (fileLength > 4) ? 4 : 0;//Déplacer la position de départ de la lecture du fichier vers la positionbeginIndex. randomFile.seek(beginIndex);byte[] bytes = new byte[10];int byteread = 0;//Lire 10 octets à la fois. Si le contenu du fichier est inférieur à 10 octets, lisez les octets restants. // Attribue le nombre d'octets lus à la fois à bytereadwhile ((byteread = randomFile.read(bytes)) != -1) {System.out.write(bytes, 0, byteread);}} catch (IOException e) {e.printStackTrace();} enfin {if (randomFile != null) {try {randomFile.close();} catch (IOException e1) {}}}}vide statique privé showAvailableBytes(InputStream in) {try {System.out.println("Le nombre d'octets dans le flux d'entrée d'octets actuel est :" + in.available());} catch (IOException e) {e.printStackTrace();} }public static void main(String[] args) {String fileName = "C:/temp/newTemp.txt";ReadFromFile.readFileByBytes(fileName);ReadFromFile.readFileByChars(fileName);ReadFromFile.readFileByLines(fileName);ReadFromFile.readFileByRandomAccess(fileName);}}
5. Ajouter du contenu à la fin du fichier
public class AppendToFile {public static void appendMethodA(String fileName, String content) {try {//Ouvrez un flux de fichiers à accès aléatoire, lisez et écrivez RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");//Longueur du fichier, mots Nombre de sections long fileLength = randomFile.length();//Déplacez le pointeur du fichier d'écriture vers la fin du fichier. randomFile.seek(fileLength);randomFile.writeBytes(content);randomFile.close();} catch (IOException e) {e.printStackTrace();}}public static void appendMethodB(String fileName, String content) {try {/ /Ouvrir un rédacteur de fichier. Le deuxième paramètre vrai dans le constructeur signifie écrire le fichier sous forme d'ajout FileWriter = new FileWriter(fileName, true);writer.write(content);writer.close();} catch (IOException e) {e.printStackTrace();}} public static void main(String[] args) {String fileName = "C:/temp /newTemp.txt";String content = "new append!";//Ajouter le fichier selon la méthode AAppendToFile.appendMethodA(fileName, content);AppendToFile.appendMethodA(fileName, "append end. /n");//Afficher le contenu du fichier ReadFromFile.readFileByLines(fileName);//Ajouter le fichier selon la méthode BAppendToFile.appendMethodB(fileName, content);AppendToFile. appendMethodB( fileName, "ajouter la fin. /n");//Afficher le contenu du fichier ReadFromFile.readFileByLines(fileName);}}