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

Métodos de leitura e escrita de arquivos em java (exemplo simples)

Java code

public class ReadFromFile { 
  /** 
   * Ler arquivo em bytes, usado frequentemente para ler arquivos binários, como imagens, áudio, vídeo e outros arquivos. 
   */ 
  public static void readFileByBytes(String fileName) { 
    File file = new File(fileName); 
    InputStream in = null; 
    abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
      System.out.println("Lendo o conteúdo do arquivo em bytes, um byte de cada vez:"); 
      // Um byte de cada vez 
      in = new FileInputStream(file); 
      int tempbyte; 
      while ((tempbyte = in.read()) != -1) { 
        System.out.write(tempbyte); 
      } 
      in.close(); 
    } 
      e.printStackTrace(); 
      return; 
    } 
    abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
      System.out.println("Ler conteúdo do arquivo em unidades de byte, várias bytes por vez:"); 
      // Ler vários bytes por vez 
      byte[] tempbytes = new byte[100]; 
      int byteread = 0; 
      in = new FileInputStream(fileName); 
      ReadFromFile.showAvailableBytes(in); 
      // Ler vários bytes para o array de bytes, byteread representa a quantidade de bytes lidos por vez 
      while ((byteread = in.read(tempbytes)) != -1) { 
        System.out.write(tempbytes, 0, byteread); 
      } 
    } catch (Exception e1) { 
      e1.printStackTrace(); 
    } 
      if (in != null) { 
        abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
          in.close(); 
        } catch (IOException e1) { 
        } 
      } 
    } 
  } 
  /** 
   * Ler arquivo em unidades de caractere, usado frequentemente para arquivos de texto, números e outros tipos 
   */ 
  public static void readFileByChars(String fileName) { 
    File file = new File(fileName); 
    Reader reader = null; 
    abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
      System.out.println("Ler conteúdo do arquivo em unidades de caractere, um byte por vez:"); 
      // Ler um caractere por vez 
      reader = new InputStreamReader(new FileInputStream(file)); 
      int tempchar; 
      while ((tempchar = reader.read()) != -1) { 
        // Para o Windows, os dois caracteres '\r\n' juntos representam uma troca de linha. 
        // Mas se esses dois caracteres forem exibidos separadamente, haverá duas trocas de linha. 
        // Portanto, bloqueie o '\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(); 
    } 
    abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
      System.out.println("Ler conteúdo do arquivo em unidades de caractere, várias bytes por vez:"); 
      // Ler vários caracteres por vez 
      char[] tempchars = new char[30]; 
      int charread = 0; 
      reader = new InputStreamReader(new FileInputStream(fileName)); 
      // Ler vários caracteres para o array de caracteres, charread representa a quantidade de caracteres lidos por vez 
      while ((charread = reader.read(tempchars)) != -1) { 
        // Também ocultar o \r não para mostrar 
        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(); 
    } 
      if (reader != null) { 
        abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
          reader.close(); 
        } catch (IOException e1) { 
        } 
      } 
    } 
  } 
  /** 
   * Ler arquivo linha por linha, usado frequentemente para formatos de arquivo orientados a linhas 
   */ 
  public static void readFileByLines(String fileName) { 
    File file = new File(fileName); 
    BufferedReader reader = null; 
    abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
      System.out.println("Ler conteúdo do arquivo linha por linha, ler uma linha inteira de cada vez:"); 
      reader = new BufferedReader(new FileReader(file)); 
      String tempString = null; 
      int line = 1; 
      // Ler uma linha de cada vez, até que seja lido null como o fim do arquivo 
      while ((tempString = reader.readLine()) != null) { 
        // Mostrar o número da linha 
        System.out.println("line "); + line + ": " + tempString); 
        line++; 
      } 
      reader.close(); 
    } 
      e.printStackTrace(); 
    } 
      if (reader != null) { 
        abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
          reader.close(); 
        } catch (IOException e1) { 
        } 
      } 
    } 
  } 
  /** 
   * Ler conteúdo do arquivo aleatoriamente 
   */ 
  public static void readFileByRandomAccess(String fileName) { 
    RandomAccessFile randomFile = null; 
    abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
      System.out.println("Ler um trecho de conteúdo do arquivo aleatoriamente:"); 
      // Abrir um fluxo de acesso aleatório de arquivo, em modo de leitura 
      randomFile = new RandomAccessFile(fileName, "r"); 
      // File length, number of bytes 
      long fileLength = randomFile.length(); 
      // The starting position of reading the file 
      int beginIndex = (fileLength > 4) &63; 4 : 0; 
      // Move the read file start position to the beginIndex position. 
      randomFile.seek(beginIndex); 
      byte[] bytes = new byte[10]; 
      int byteread = 0; 
      // Read once10bytes, if the file content is not enough10bytes, if the file content is not enough 
      // Assign the number of bytes read in one read to byteread 
      while ((byteread = randomFile.read(bytes)) != -1) { 
        System.out.write(bytes, 0, byteread); 
      } 
    } 
      e.printStackTrace(); 
    } 
      if (randomFile != null) { 
        abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
          randomFile.close(); 
        } catch (IOException e1) { 
        } 
      } 
    } 
  } 
  /** 
   * Display the number of bytes remaining in the input stream 
   */ 
  private static void showAvailableBytes(InputStream in) { 
    abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
      System.out.println("The number of bytes available in the current byte input stream is: "); + 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); 
  } 
}

Java code

public class AppendToFile { 
  /** 
   * Append file method A: using RandomAccessFile 
   */ 
  public static void appendMethodA(String fileName, String content) { 
    abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de append 
      // Open a random access file stream in read-write mode 
      RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); 
      // File length, number of bytes 
      long fileLength = randomFile.length(); 
      //Move the write file pointer to the end of the file. 
      randomFile.seek(fileLength); 
      randomFile.writeBytes(content); 
      randomFile.close(); 
    } 
      e.printStackTrace(); 
    } 
  } 
  /** 
   * Adicionar ao arquivo usando o método B: FileWriterr 
   */ 
  public static void appendMethodB(String fileName, String content) { 
    abrir um gravador de arquivo, o segundo parâmetro true indica que o arquivo deve ser gravado em modo de 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!"; 
    //Adicionar ao arquivo usando o método A 
    AppendToFile.appendMethodA(fileName, content); 
    AppendToFile.appendMethodA(fileName, "append end. \n"); 
    //Exibir o conteúdo do arquivo 
    ReadFromFile.readFileByLines(fileName); 
    //Adicionar ao arquivo usando o método B 
    AppendToFile.appendMethodB(fileName, content); 
    AppendToFile.appendMethodB(fileName, "append end. \n"); 
    //Exibir o conteúdo do arquivo 
    ReadFromFile.readFileByLines(fileName); 
  } 
}

Isso é tudo que o editor trouxe para você sobre a leitura e escrita de arquivos Java (exemplo simples), esperamos que você apóie e grite o tutorial!

Você também pode gostar