Ao determinar se um objeto de arquivo é um arquivo ou diretório, você deve primeiro determinar se o conteúdo encapsulado pelo objeto de arquivo existe e julgar por existir, o método de codificação também pode ser especificado ao construir o fluxo de operação do arquivo de texto;
Arquivo f;
existe();
f.isDirectory();
f.isFile();
f.deleteOnExit();//Exclui o arquivo especificado quando o programa termina;
f.createNewFile();//Cria um arquivo no local especificado. Se o arquivo já existir, retorne false;
f.getParent();//Este método retorna o diretório pai no caminho absoluto. Se o caminho relativo for obtido, Null será retornado. Se houver um diretório de nível superior no caminho relativo, o diretório será retornado.
File.separator //Separador do sistema de arquivos, sistemas diferentes possuem separadores diferentes;
FilenameFilter:// é usado para filtrar nomes de arquivos;
FilenameFilter.accept(File dir,String name); //Testar se o arquivo especificado está incluído em uma lista de arquivos;
nome: o nome do arquivo;
public boolean aceitar (diretório do arquivo, nome da string) { return name.endsWith(".txt" });
//O buffer parece melhorar a eficiência das operações de stream; antes de criar um buffer, deve haver um objeto de stream;
//A tecnologia de buffer realmente fecha o array dentro do objeto e o grava uma vez após salvá-lo;
Construtor: O construtor que passa o fluxo para o buffer;
Aviso: Enquanto o buffer for usado, ele deverá ser atualizado;
Bufferizado... buf;
buf.flush();
buf.close();//Fechar o buffer é fechar o objeto de fluxo no buffer;
BufferedReader buffer;
bufr.readLine();//Retorna uma linha, mas não contém um caractere de nova linha;
// Seja lendo uma linha ou vários caracteres, na verdade eles são lidos um por um no disco rígido, então o método final utilizado é ler um de cada vez usando o método read.
/*
* ByteArrayInputStream: Durante a construção, a fonte de dados precisa ser recebida e a fonte de dados é uma matriz de bytes;
* ByteArrayOutputStream: Ao construir, não há necessidade de definir o destino dos dados, pois uma matriz de bytes de comprimento variável é definida internamente, que é o destino dos dados;
* Ambos os objetos de fluxo operam em arrays, não usam recursos do sistema e não precisam ser fechados;
*/
//Os dados no buffer interno serão atualizados antes de fechar o recurso de stream;
// flush(); Após a atualização (armazenamento dos dados no buffer no arquivo), o fluxo continua a ser usado;
// Serialização: membros estáticos não podem ser serializados;
// Se você não deseja que membros não estáticos sejam serializados, adicione modificador: transient int,,,
System.in:InputStream
System.out:OutputStream