Casa > O > O Que É O Modo Anexo Em Um Arquivo Aberto?

O que é o modo anexo em um arquivo aberto?

Há duas formas de ver os ficheiros. Uma é como um conjunto de blocos de informação, que você pode ler e acessar em qualquer ordem.

A outra é como um fluxo de bytes. Ao ler, você começa no início, e ao ler, você avança um contador de posição do arquivo para cada byte lido.

Na escrita, é semelhante. À medida que escreve, o armazenamento do ficheiro é alocado (como para acesso aleatório). Cada byte que você escreve é contado em um ponteiro de posição do arquivo. Ao fechar o ficheiro, este torna-se o comprimento do byte do ficheiro.

Então o que acontece se escrever um ficheiro, feche-o, e depois abra-o para escrever novamente?

Podemos começar de 0 novamente e SOBRESCRITAR o conteúdo existente.

Or podemos começar do fim, inicializando a nossa posição de ficheiro para ser o comprimento do que já foi escrito, e adicionar o nosso novo conteúdo lá. Este é o modo APPEND.

Novo conteúdo é anexado ao antigo.

Aqui está um detalhe que na verdade não afeta você, mas ajudará a visualizar como ele funciona.

Desde que o armazenamento subjacente é alocado em blocos de algum tamanho, ao invés de byte por byte, há algum mecanismo adicional envolvido. Ao escrever, quando os blocos são arquivados, eles são escritos em disco, com o último sendo escrito em close.

Quando você começa a anexar, você tem que ler esse último bloco parcial, e começar a preenchê-lo no ponto em que você parou. O comprimento do byte do arquivo é toda a informação que você precisa para calcular que.

Após isso ser feito, ele procede exatamente como qualquer outra operação de escrita; os blocos são escritos quando preenchidos. O modo APPEND afeta apenas a configuração inicial de onde começar a escrever.

Muitos sistemas de arquivos que suportam o modo stream também permitem que você altere diretamente onde no arquivo você está lendo ou escrevendo, com operações que permitem modificar a posição do arquivo para operações subseqüentes.

Isso quebra a abstração de um puro stream-of-bytes, dando-lhe acesso aleatório ao arquivo. Mas você pode definir a posição do arquivo, e ler uma parte específica de um arquivo, ou sobrescrever uma parte específica de um arquivo.

Isso ilustra como toda a visão do "fluxo de bytes" de um arquivo é na verdade uma camada no topo do modelo de armazenamento do bloco.

Então se você quiser modificar um arquivo de acesso aleatório? Talvez modificar os primeiros 100 bytes?

Abrir com o modo APPEND. A posição inicial do arquivo não é importante aqui; o importante é que você não descarte o conteúdo original do arquivo e comece de novo. Abrir com o modo SOBREWRITE dar-lhe-á um ficheiro vazio para começar com.

De Viens Haydu

How does one send an email in Python? :: Porque é que o meu jogo de palavras grátis não tem downloads na Loja do Google Play?