67040


プログラム全般に関する質問です。

今コンピューターでテキストファイルをいじるためのプログラミングについて勉強しているのですが  
“append”と“write”の違いが全然わかりません。

テキストファイルというものはあらゆるプログラミングのデータを文字列でテキストファイルに保存できるものであるならばファイルに「追加」できる“append”とファイルに「書く」“write”に大きな違いはないんじゃないんですか？


CC BY-SA 4.0
2020-05-27T10:51:37.120
67038
2020-05-27T12:07:09.493
2020-05-27T12:07:09.493
7290
36859
question
テキストファイル ファイル入出力
"write" と "append" の違い


物理的な紙のノートを想像してみてください。文字を書き進めるうち、行やページもどんどん移動していきますが、いったん作業を終えてノートを閉じた後、また別のタイミングで開き直した時には、最後に書いたのはどこかとページをペラペラ探すことが多いと思います。

プログラムでテキストファイルを扱う際にも、開いていたファイルを一旦閉じた場合・既存のファイルを開き直した場合には、読み取り・書き取り位置がファイルの先頭にリセットされています。  
紙のページをめくるように、テキストファイル中での位置を移動する `seek` などの関数もありますが、  
**末尾に追記する** ような場合に "Append" のモードでファイルを開くことが多いです。


CC BY-SA 4.0
2020-05-27T11:22:38.913
67040
2020-05-27T11:22:38.913
3060
67038
answer


  * write はファイルを新規にオープンして書き込む（既存ファイルがあった場合は空にしてから書き込み）
  * append は既存のファイルに追記

test.txt の内容が以下のようだったとして、

[code]

    あいうえお
    
[/code]

これに write モードで「かきくけこ」と書き込んだ場合、

[code]

    かきくけこ
    
[/code]

になります。

一方、append モードで「かきくけこ」と書き込んだ場合、

[code]

    あいうえおかきくけこ
    
[/code]

になります。

違いがないと思うのは、 **新規ファイルをオープンする場合のみを想定した場合** です。その場合、write でも append でも違いは生じません。


CC BY-SA 4.0
2020-05-27T12:04:04.363
67042
2020-05-27T12:04:04.363
7290
67038
answer