Lembro que quando comecei a aprender Java, não entendi o streaming de Java IO, então escrevi este ensaio e esperei que fosse útil para aqueles que começaram a aprender Java e facilitar sua consulta no futuro. Os fluxos Java IO são divididos em fluxos de caracteres (leitor, escritor) e fluxos de bytes (InputStream, outputStream). Os fluxos de bytes, como o nome sugere, os fluxos de bytes devem ler o conteúdo dos arquivos em matrizes de bytes e, em seguida, gerá -los para outro arquivo. A menor unidade de operações de streaming de caracteres são os caracteres. Vamos dar uma olhada na visão geral dos fluxos de IO:
A seguir, é a primeira coisa a ler e escrever o arquivo através de um fluxo de personagens:
pacote lib; importar java.io.bufferedReader; importar java.io.file; importar java.io.fileNotfoundException; importar java.io.fileReader; importar java.io.filewriter; importante; Arquivo ("f: //test.txt"); // Método para escrever stream de caracteres public string writeInfile () lança ioexception {string str = ""; String count = ""; tente {// use o fluxo de caracteres para ler o arquivo buffersader bf = new buffarreder (novo filereader (f)); while (true) {// Leia cada linha de dados e atribua -os ao str if ((count = bf.readline ())! = null) {str += count; } else {break; }} // Fechar o fluxo bf.close (); } catch (filenotfoundException e) {e.printStackTrace (); } retornar str; } // Método para o fluxo de caracteres Reading public void getReader () {try {// onde true significa adicionar no final do conteúdo original do arquivo. Se não estiver escrito, significa esvaziar o arquivo e adicionar o conteúdo. PrintWriter pw = new PrintWriter (new FileWriter (f, true)); pw.Write ("String de entrada de teste para o arquivo 2"); pw.close (); } catch (ioexception e) {e.printStackTrace (); }} public static void main (string [] args) lança ioexception {test test = new test (); // Digite a string no arquivo test.getReader (); // Leia a string correspondente String str = test.WriteInfile (); // open system.out.println ("Conteúdo do arquivo:"+str); }}Existem comentários nos pontos -chave do código acima, para que não entre em detalhes um por um. O principal é que você não esquece de fechar depois de usar o fluxo.
Em seguida, opere no arquivo através de um fluxo de bytes, copiando o conteúdo de um arquivo para outro:
pacote com.file.test2; importar java.io.file; importar java.io.fileInputStream; importar java.io.filenotfoundException; importar java.io.fileOutputStream; importar java.io.ioException; classe pública TestFile2 {// Reading e write de streams byte bythete, flui -se, portados, filmes, filmes, e os arquivos de argamáticos; Ioexception {// o arquivo de origem a ser copiado f = novo arquivo ("d: //test.txt"); // arquivo de destino do arquivo f2 = novo arquivo ("d: //test2.txt"); // Defina uma matriz do tipo de byte para armazenar o conteúdo de leitura byte [] b = novo byte [1024]; comprimento int; tente {// Defina o fluxo de leitura FileInputStream em = new FileInputStream (f); // Defina a saída do fluxo no arquivo fileOutputStream out = new FileOutputStream (F2); // emitir o conteúdo do arquivo para outro arquivo while ((comprimento = in.read (b))! =-1) {out.Write (b, 0, comprimento); } out.close (); in.Close (); } catch (filenotfoundException e) {e.printStackTrace (); }}}Na operação do fluxo de bytes, o arquivo de origem na linha 13 deve existir. Você pode alterar o caminho do arquivo, conforme necessário. Você só precisa existir. Caso contrário, um erro que o arquivo não pode ser encontrado será relatado. Ao mesmo tempo, se você deseja gerar o conteúdo do fluxo de bytes de leitura no console, poderá adicionar dois códigos entre as linhas 27 e 28: in.read (b, 0, b.Length); System.out.println (new String (b));
Os acima são operações relacionadas de fluxos de caracteres e fluxos de bytes. De fato, o código não é difícil, é principalmente sobre o próprio entendimento. Todos terão maneiras diferentes de entender os mesmos problemas. Obviamente, para nós, programadores, além de pensar mais, também precisamos fazer mais. Por fim, espero que o conteúdo acima seja útil para todos e, por favor, continue apoiando este site.