1. Dateiinhalt byteweise lesen
öffentliche Klasse ReadFromFile {public static void readFileByBytes(String fileName) {File file = new File(fileName);InputStream in = null;try {System.out.println("Lesen Sie den Dateiinhalt in Bytes, Wort für Wort. Abschnitt: ");//Ein Byte nach dem anderen lesen in = 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("Datei in Bytes lesen Inhalt, mehrere lesen Bytes gleichzeitig: ");// Mehrere Bytes gleichzeitig lesen byte[] tempbytes = new byte[100];int byteread = 0;in = new FileInputStream(fileName);ReadFromFile.showAvailableBytes(in);//Mehrere Bytes in das Byte-Array lesen, Byteread ist die Anzahl der gleichzeitig gelesenen Bytes, während ((byteread = in.read(tempbytes)) != - 1) { System.out.write(tempbytes, 0, byteread);}} Catch (Ausnahme e1) {e1.printStackTrace();} schließlich {if (in != null) {try {in.close();} Catch (IOException e1) {}}}}
2. Lesen Sie den Dateiinhalt zeichenweise
public static void readFileByChars(String fileName) {File file = new File(fileName);Reader reader = null;try {System.out.println("Lesen Sie den Dateiinhalt in Zeicheneinheiten, ein Byte nach dem anderen:"); /Ein Zeichen nach dem anderen lesen reader = new InputStreamReader(new FileInputStream(file));int tempchar;while ((tempchar = reader.read()) != -1) {// Wenn unter Windows die beiden Zeichen /r/n zusammen stehen, stellen sie eine neue Zeile dar. // Wenn diese beiden Zeichen jedoch separat angezeigt werden, werden die Zeilen zweimal geändert. // Also, /r oder /n blockieren. Andernfalls entstehen viele Leerzeilen. if (((char) tempchar) != '/r') {System.out.print((char) tempchar);}}reader.close();} Catch (Exception e) {e.printStackTrace();} try {System.out.println("Lesen Sie den Dateiinhalt in Zeicheneinheiten, lesen Sie mehrere Bytes gleichzeitig:");//Lesen Sie mehrere Zeichen gleichzeitig char[] tempchars = new char[30];int charread = 0;reader = new InputStreamReader(new FileInputStream(fileName));//Mehrere Zeichen in das Zeichenarray einlesen, charread ist die Anzahl der gleichzeitig gelesenen Zeichen, während ((charread = reader.read(tempchars)) != -1 ) {// Auch /r abschirmen und nicht anzeigen, wenn ((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 (Ausnahme e1) {e1.printStackTrace();} schließlich {if (reader != null) {try {reader.close();} Catch (IOException e1) {}}}}
3. Lesen Sie den Dateiinhalt Zeile für Zeile
public static void readFileByLines(String fileName) {File file = new File(fileName);BufferedReader reader = null;try {System.out.println("Lesen Sie den Dateiinhalt in Zeileneinheiten, lesen Sie jeweils eine ganze Zeile:") ;reader = new BufferedReader(new FileReader(file));String tempString = null;int line = 1;//Eine Zeile nach der anderen lesen, bis null als Ende der Datei gelesen wird while ((tempString = reader.readLine()) != null) {//Zeilennummer anzeigen System.out.println("line " + line + ": " + tempString);line++;}reader.close();} Catch (IOException e) {e.printStackTrace();} schließlich {if (reader != null) {try {reader.close();} Catch (IOException e1) {}}}}
4. Dateiinhalte nach dem Zufallsprinzip lesen
public static void readFileByRandomAccess(String fileName) {RandomAccessFile randomFile = null;try {System.out.println("Zufällig einen Dateiinhalt lesen:");//Öffnen Sie einen Dateistream mit wahlfreiem Zugriff im schreibgeschützten Modus randomFile = new RandomAccessFile ( fileName, "r"); // Dateilänge, Anzahl der Bytes long fileLength = randomFile.length(); // Die Startposition der Datei lesen int beginIndex = (fileLength > 4) ? 4 : 0;//Verschieben Sie die Startposition des Lesens der Datei an die beginIndex-Position. randomFile.seek(beginIndex);byte[] bytes = new byte[10];int byteread = 0;//Lesen Sie jeweils 10 Bytes. Wenn der Dateiinhalt weniger als 10 Bytes beträgt, lesen Sie die verbleibenden Bytes. // Weisen Sie bytereadwhile die Anzahl der gleichzeitig gelesenen Bytes zu ((byteread = randomFile.read(bytes)) != -1) {System.out.write(bytes, 0, byteread);}} Catch (IOException e) {e.printStackTrace();} schließlich {if (randomFile != null) {try {randomFile.close();} Catch (IOException e1) {}}}}private static void showAvailableBytes(InputStream in) {try {System.out.println("Die Anzahl der Bytes im aktuellen Byte-Eingabestream ist:" + 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. Hängen Sie den Inhalt am Ende der Datei an
öffentliche Klasse AppendToFile {public static void appendMethodA(String fileName, String content) {try {//Öffnen Sie einen Dateistream mit wahlfreiem Zugriff, lesen und schreiben Sie RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");//Dateilänge, Wörter Anzahl of section long fileLength = randomFile.length();//Bewegen Sie den Schreibdateizeiger an das Ende der Datei. randomFile.seek(fileLength);randomFile.writeBytes(content);randomFile.close();} Catch (IOException e) {e.printStackTrace();}}public static void appendMethodB(String fileName, String content) {try {/ /Öffnen Sie einen Dateiwriter. Der zweite Parameter true im Konstruktor bedeutet, dass die Datei im Anhängeformat geschrieben wird. 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!";//Datei gemäß Methode anhängen AAppendToFile.appendMethodA(fileName, content);AppendToFile.appendMethodA(fileName, "append end. /n");//Anzeige des Dateiinhalts ReadFromFile.readFileByLines(fileName);//Anhängen der Datei gemäß Methode BAppendToFile.appendMethodB(fileName, content);AppendToFile. appendMethodB( fileName, „append end. /n");//Dateiinhalt anzeigen ReadFromFile.readFileByLines(fileName);}}