Prefácio: os fluxos de IO são divididos principalmente em duas categorias, a saber, fluxos de bytes e fluxos de caracteres
Perceber:
1. Use fluxos de bytes para arquivos de áudio, fotos e vídeos (ampla gama).
2. Se isso envolver apenas texto, use fluxos de caracteres
Copie o conteúdo de texto usando o fluxo de bytes (outros arquivos também podem ser)
O código é o seguinte:
importar java.io.file; importar java.io.fileInputStream; importar java.io.filenotfoundException; importar java.io.fileOutputStream; importar java.io.ioException; importfile java.io.inputStream; import java.io.outputStream; infile = novo arquivo ("src.txt"); // Origem do arquivo de origem inputStream in = new FileInputStream (infilado); // Arquivo de entrada do arquivo Arquivo de fluxo outfile = new File ("Tar.txt"); // File de destino outputStream Out = new FileOutputStream (outfile); // Stream de saída de arquivo byte [] buff = novo byte [1024]; // Crie um buffer e aloque 1024 bytes de memória para buff int num = 0; while ((num = in.read (buff))! =-1) {// julga se o número máximo de bytes lida é 1024 out.write (buff, 0, num); // out.write (buff); // Tudo bem, mas é fácil causar conteúdo incorreto do arquivo out.flush (); // fresco a sequência de buffer s = new string (buff); System.out.println ("Conteúdo do arquivo copiado com sucesso"); System.out.println ("Copição de cópia do arquivo é /n"+s); } in.close (); // fechar o fluxo de entrada fora.close (); // fechar o fluxo de saída // infile.delete (); // exclua o arquivo de origem // outfile.renameto (novo arquivo ("renome.txt")); // renomear o arquivo de saída} catch (filenotfoundException e) {e.printStackTrace (); // Imprima as informações de exceção na linha de comando e o motivo do erro no programa} catch (ioexception e) {e.printStackTrace (); }}}Copie o conteúdo de texto usando fluxos de caracteres (apenas arquivos de texto)
O código é o seguinte:
importar java.io.bufferedReader; importar java.io.bufferedwriter; importar java.io.file; importar java.io.filenotfoundException; importar java.io.fileException; cópia de java.io.file; Arquivo ("d: /src.txt"); // Origem de arquivo de origem filereader fileReader = new fileReader (infile); // Leia o arquivo de caracteres do arquivo BufferReader BufferReader = new BufferredReader (FileReader); // coloque os caracteres de leitura no arquivo de cache outfile = new File ("d: /tar.txt"); // FileWriter FileWriter de destino FileWrite = new FileWriter (outfile); // grava o stream de stream bufferwriter bufferwriter = new bufferwriter (fileWrite); // Coloque o fluxo de caracteres a ser inserido na sequência de cache s = ""; String str = ""; while ((s = bufferredreader.readline ())! = null) {// determine se o fluxo de caracteres do arquivo foi lido bufferwriter.write (s); // O cache do fluxo de caracteres é gravado no arquivo bufferwriter.newline (); // leia por linha, se o caractere newline for encontrado, newline bufferwriter.flush (); // Cache fresco str+= s; } System.out.println ("Copito de cópia do arquivo é /n"+str); // Fechar o fluxo de entrada e saída fileReader.close (); bufferredreader.close (); fileWrite.close (); bufferwriter.close (); bufferwriter.close (); // infile.delete (); // exclua o arquivo de origem // outfile.renameto (novo arquivo ("renome.txt")); // renomear o arquivo de saída} catch (filenotfoundException e) {e.printStackTrace (); // Imprima as informações de exceção na linha de comando e o motivo do erro no programa} catch (ioexception e) {e.printStackTrace (); }}}ilustrar:
Se você deseja copiar o conteúdo de texto anexando o conteúdo do arquivo em vez de substituí -lo, modifique -o da seguinte forma
OutputStream out = new FileOutputStream (outfile, true); // Stream de bytes
FileWriter fileWrite = new FileWriter (outfile, true); // Stream de caracteres
Se você deseja especificar o tamanho do cache no fluxo de caracteres, modifique -o da seguinte forma
Bufferwriter bufferwriter = new bufferwriter (fileWrite, 1024);