1. Leia o conteúdo do arquivo por bytes
public class ReadFromFile {public static void readFileByBytes(String fileName) {File file = new File(fileName);InputStream in = null;try {System.out.println("Lê o conteúdo do arquivo em bytes, uma palavra por vez Seção: ");//Lê um byte por vez in = new FileInputStream(file);int tempbyte;while ((tempbyte = in.read()) != -1) {System.out.write(tempbyte);}in.close();} catch (IOException e) {e.printStackTrace();return;}tente {System.out.println("Ler arquivo em bytes Conteúdo, ler vários bytes por vez: ");// Lê vários bytes por vez byte[] tempbytes = new byte[100];int byteread = 0;in = new FileInputStream(fileName);ReadFromFile.showAvailableBytes(in);//Lê vários bytes na matriz de bytes, byteread é o número de bytes lidos de uma vez while ((byteread = in.read(tempbytes)) != - 1) { System.out.write(tempbytes, 0, byteread);}} catch (Exceção e1) {e1.printStackTrace();} finalmente {if (in!= null) {tente {in.close();} capturar (IOException e1) {}}}}
2. Leia o conteúdo do arquivo por caractere
public static void readFileByChars(String fileName) {File file = new File(fileName);Reader reader = null;try {System.out.println("Lê o conteúdo do arquivo em unidades de caracteres, um byte por vez:"); /Ler um caractere por vez reader = new InputStreamReader(new FileInputStream(file));int tempchar;while ((tempchar = reader.read()) != -1) {// No Windows, quando os dois caracteres /r/n estão juntos, eles representam uma nova linha. // Mas se esses dois caracteres forem exibidos separadamente, as linhas serão alteradas duas vezes. // Então, bloqueie /r ou bloqueie /n. Caso contrário, haverá muitas linhas em branco. if (((char) tempchar) != '/r') {System.out.print((char) tempchar);}}reader.close();} catch (Exception e) {e.printStackTrace();} try {System.out.println("Ler o conteúdo do arquivo em unidades de caracteres, ler vários bytes por vez:");//Ler vários caracteres por vez char[] tempchars = new char[30];int charread = 0;reader = new InputStreamReader(new FileInputStream(fileName));//Lê vários caracteres na matriz de caracteres, charread é o número de caracteres lidos por vez while ((charread = reader.read(tempchars)) != -1 ) {// Também protege /r e não exibe 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();} finalmente {if (reader != null) {try {reader.close();} catch (IOException e1) {}}}}
3. Leia o conteúdo do arquivo linha por linha
public static void readFileByLines(String fileName) {File file = new File(fileName);BufferedReader reader = null;try {System.out.println("Lê o conteúdo do arquivo em unidades de linha, lê uma linha inteira de cada vez:") ;reader = new BufferedReader(new FileReader(file));String tempString = null;int line = 1;//Lê uma linha por vez até que null seja lido como o final do arquivo enquanto ((tempString = reader.readLine()) != null) {//Exibe o número da linha System.out.println("line " + line + ": " + tempString);line++;}reader.close();} catch (IOException e) {e.printStackTrace();} finalmente {if (reader! = null) {tente {reader.close();} catch (IOException e1) {}}}}
4. Leia aleatoriamente o conteúdo do arquivo
public static void readFileByRandomAccess(String fileName) {RandomAccessFile randomFile = null;try {System.out.println("Ler aleatoriamente o conteúdo de um arquivo:");//Abrir um fluxo de arquivo de acesso aleatório no modo somente leitura randomFile = new RandomAccessFile ( fileName, "r"); // Comprimento do arquivo, número de bytes long fileLength = randomFile.length(); BeginIndex = (fileLength > 4) ? 4 : 0;//Move a posição inicial de leitura do arquivo para a posição BeginIndex. randomFile.seek(beginIndex);byte[] bytes = new byte[10];int byteread = 0;//Lê 10 bytes por vez Se o conteúdo do arquivo for menor que 10 bytes, leia os bytes restantes. // Atribui o número de bytes lidos por vez para bytereadwhile ((byteread = randomFile.read(bytes)) != -1) {System.out.write(bytes, 0, byteread);}} catch (IOException e) {e.printStackTrace();} finalmente {if (randomFile! = null) {try {randomFile.close();} catch (IOException e1) {}}}}private static void showAvailableBytes(InputStream in) {try {System.out.println("O número de bytes no fluxo de entrada de bytes atual é:" + in.available());} catch (IOException e) {e.printStackTrace();} }public static void main(String[] args) {String nomeArquivo = "C:/temp/newTemp.txt";ReadFromFile.readFileBytes(fileName);ReadFromFile.readFileByChars(fileName);ReadFromFile.readFileByLines(fileName);ReadFromFile.readFileByRandomAccess(fileName);}}
5. Anexe o conteúdo ao final do arquivo
public class AppendToFile {public static void appendMethodA(String fileName, String content) {try {//Abrir um fluxo de arquivo de acesso aleatório, ler e escrever RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");//Comprimento do arquivo, palavras Número de seções long fileLength = randomFile.length(); //Move o ponteiro do arquivo de gravação para o final do arquivo. randomFile.seek(fileLength);randomFile.writeBytes(content);randomFile.close();} catch (IOException e) {e.printStackTrace();}}public static void appendMethodB(String fileName, String content) {try {/ /Abrir um gravador de arquivo. O segundo parâmetro true no construtor significa escrever o arquivo no formato anexado 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!";//Acrescenta o arquivo de acordo com o método AAppendToFile.appendMethodA(fileName, content);AppendToFile.appendMethodA(fileName, "append end. /n");//Exibe o conteúdo do arquivo ReadFromFile.readFileByLines(fileName);//Anexa o arquivo de acordo com o método BAppendToFile.appendMethodB(fileName, content);AppendToFile. appendMethodB(nomeArquivo, "acrescentar fim. /n");//Exibe o conteúdo do arquivo ReadFromFile.readFileByLines(fileName);}}