Um arquivo é uma abstração utilizada por sistemas operacionais para uniformizar a interação entre o ambiente de execução e os dispositivos externos a ele em um computador. Tipicamente, a interação de um programa com um dispositivo através de arquivos passa por três etapas:
Em Java, a classe
File
permite representar arquivos nesse
nível de abstração. Um dos construtores desta classe recebe como
argumento uma string que pode identificar, por exemplo, o
nome de um arquivo em disco. Os métodos desta classe permitem obter
informações sobre o arquivo -- por exemplo, exists()
,
canRead()
, canWrite()
, length()
e lastModified()
-- e realizar operações sobre o arquivo
como um todo, como em delete()
e
deleteOnExit()
.
Observe que as funcionalidades de transferência seqüencial de dados a
partir de ou para um arquivo não é suportada pela classe
File
, mas sim pelas classes FileInputStream
,
FileOutputStream
,
FileReader
e
FileWriter
. Todas estas classes oferecem pelo menos um
construtor que recebe como argumento um objeto da classe
File
e implementam os métodos básicos de transferência de
dados suportados respectivamente por
InputStream,
OutputStream,
Reader e
Writer.
Para aplicações que necessitam manipular arquivos de forma não
seqüencial (ou "direta"), envolvendo avanços ou retrocessos
arbitrários na posição do arquivo onde ocorrerá a transferência, Java
oferece a classe
RandomAccessFile
.