English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Codice Java
public class ReadFromFile { /** * Legge il file in unità di byte, spesso utilizzato per leggere file binari, come immagini, suoni, video ecc. */ public static void readFileByBytes(String fileName) { File file = new File(nomeFile); InputStream in = null; //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append System.out.println("Legge i contenuti del file in unità di byte, un byte alla volta:"); // Legge un byte alla volta in = new FileInputStream(file); int tempbyte; while ((tempbyte = in.read()) != -1) { System.out.write(tempbyte); {} in.close(); } e.printStackTrace(); return; {} //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append System.out.println("Legge i contenuti del file in unità di byte, più byte alla volta:"); // Legge più byte in una volta byte[] tempbytes = new byte[100]; int byteread = 0; in = new FileInputStream(fileName); ReadFromFile.showAvailableBytes(in); // 读入多个字节到字节数组中,byteread为一次读入的字节数 while ((byteread = in.read(tempbytes)) != -1) { System.out.write(tempbytes, 0, byteread); {} } catch (Exception e1) { e1.printStackTrace(); } if (in != null) { //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append in.close(); } {} {} {} {} /** * 以字符为单位读取文件,常用于读文本,数字等类型的文件 */ public static void readFileByChars(String fileName) { File file = new File(nomeFile); Reader reader = null; //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append System.out.println("以字符为单位读取文件内容,一次读一个字节:"); // 一次读一个字符 reader = new InputStreamReader(new FileInputStream(file)); int tempchar; while ((tempchar = reader.read()) != -1) { // 对于windows下,\r\n这两个字符在一起时,表示一个换行。 // 但如果这两个字符分开显示时,会换两次行。 // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。 if (((char) tempchar) != '\r') { System.out.print((char) tempchar); {} {} reader.close(); } e.printStackTrace(); {} //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append System.out.println("以字符为单位读取文件内容,一次读多个字节:"); // 一次读多个字符 char[] tempchars = new char[30]; int charread = 0; reader = new InputStreamReader(new FileInputStream(fileName)); // 读入多个字符到字符数组中,charread为一次读取字符数 while ((charread = reader.read(tempchars)) != -1) { // 同样屏蔽掉\r不显示 if ((charread == tempchars.length) && (caratteriTemp[caratteriTemp.length - 1] != '\r')) { System.out.print(caratteriTemp); } else { for (int i = 0; i < letturaChar; i++) { if (caratteriTemp[i] == '\r') { continue; } else { System.out.print(caratteriTemp[i]); {} {} {} {} } catch (Exception e1) { e1.printStackTrace(); } if (reader != null) { //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append reader.close(); } {} {} {} {} /** * Lettura del file per riga, utilizzato spesso per file formattati a riga */ public static void readFileByLines(String nomeFile) { File file = new File(nomeFile); BufferedReader reader = null; //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append System.out.println("Lettura del contenuto del file per riga, una riga alla volta:"); reader = new BufferedReader(new FileReader(file)); String stringaTemp = null; int riga = 1; // Lettura di una riga alla volta, fino a leggere null come fine del file while ((stringaTemp = reader.readLine()) != null) { // Visualizzazione del numero di riga System.out.println("riga " + riga + ": " + stringaTemp); riga++; {} reader.close(); } e.printStackTrace(); } if (reader != null) { //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append reader.close(); } {} {} {} {} /** * Lettura di contenuti di file in modo casuale */ public static void readFileByRandomAccess(String nomeFile) { RandomAccessFile randomFile = null; //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append System.out.println("Lettura di un segmento di contenuto di file:"); // Apertura di un file di accesso casuale in modalità sola lettura randomFile = new RandomAccessFile(nomeFile, "r"); // Lunghezza del file, numero di byte long fileLength = randomFile.length(); // Posizione di inizio della lettura del file int inizioIndice = (lunghezzaFile > 4) ? 4 : 0; // Spostare la posizione di lettura del file all'inizio dell'indice di partenza. randomFile.seek(beginIndex); byte[] bytes = new byte[10]; int byteread = 0; // Leggi 10 byte in una volta, se il contenuto del file è inferiore a 10 byte, legge i byte rimanenti. // Assegnare al variabile byteread il numero di byte letti in una volta while ((byteread = randomFile.read(bytes)) != -1) { System.out.write(bytes, 0, byteread); {} } e.printStackTrace(); } if (randomFile != null) { //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append randomFile.close(); } {} {} {} {} /** * Mostra il numero di byte rimanenti nel flusso di input */ private static void showAvailableBytes(InputStream in) { //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append System.out.println("Il numero di byte disponibili nel flusso di input corrente è: " + in.available()); } 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); {} {}
Codice Java
public class AppendToFile { /** * Metodo A di aggiunta file: utilizzo di RandomAccessFile */ public static void appendMethodA(String fileName, String content) { //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append // Aprire un file di accesso casuale in modalità lettura/scrittura RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); // Lunghezza del file, numero di byte long fileLength = randomFile.length(); // Spostare il puntatore di scrittura del file alla fine del file. randomFile.seek(fileLength); randomFile.writeBytes(content); randomFile.close(); } e.printStackTrace(); {} {} /** * Metodo B di aggiunta file: utilizzo di FileWriter */ try { //Apri un writer di file, il secondo parametro del costruttore true indica che si scrive in modalità append FileWriter writer = 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!"; //Aggiungi al file con metodo A AppendToFile.appendMethodA(fileName, content); AppendToFile.appendMethodA(fileName, "append end. \n"); //Mostra il contenuto del file ReadFromFile.readFileByLines(fileName); //Aggiungi al file con metodo B AppendToFile.appendMethodB(fileName, content); AppendToFile.appendMethodB(fileName, "append end. \n"); //Mostra il contenuto del file ReadFromFile.readFileByLines(fileName); {} {}
Questo è tutto il contenuto che l'editore ha fornito per voi su come leggere e scrivere file in Java (esempio semplice). Spero che vi uniate a urlare la guida~