Perlのようなファイルの追加書き込みは可能か?

このQ&Aのポイント
  • Perlのようなファイルの追加書き込み方法について調べています。Javaではメモリに展開する必要がありますが、Perlなどではメモリ展開せずに直接ファイルに追加書き込みできるのでしょうか?
  • 数メガバイトのファイルに頻繁に追加書き込みをする場合、メモリに展開せずにファイルに直接追加書き込みする方法があれば知りたいです。
  • CやPerl、PHPのような言語を使用してメモリに展開せずにファイルに追加書き込みをする方法を教えてください。
回答を見る
  • ベストアンサー

Perlのようなファイルの追加書き込みは可能か?

いつもおせわになってます。 今回の質問なのですが、ファイル操作についてです。 題の通り、ファイルへ追加書き込みをしたいのですが、Javaでやる場合、一度メモリに展開してそのメモリへ追加した後、再びそれをファイルに書き込むといった流れですよね? これがPerlなどになるとメモリ展開せずにいきなりファイルに追加書き込みしていると思うのです(<かなり推測ですので間違っていたらすいません)。 数メガバイトのファイルに追加書き込みを頻繁に行うという想定での話になるのですが、メモリに展開せずにファイルに追加書き込みをする方法はないでしょうか? ないとすれば、やはりCやPerl、PHPの言語を利用することになるのでしょうか? わかりにくい質問ですいません。 回答よろしくお願いします。

  • Java
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • hidebu-
  • ベストアンサー率53% (45/84)
回答No.2

FileWriterクラスを使っているならコンストラクタの第二引数を追加モードにしていしてやればOKです。 それとも別のクラスを使用しているのでしょうか?

shotaro777
質問者

お礼

回答ありがとうございます。 さっそくAPIで確かめてみました。 なるほど、こんなところに… 気づきませんでした。 まだまだAPIを見ていないって証拠ですね(^_^;) 本当に助かりました。 ありがとうございました。

その他の回答 (1)

  • hidebu-
  • ベストアンサー率53% (45/84)
回答No.1

もちろんできますが? ファイルポインタもきちんと存在しますし。 追加する個所というのはどこになるのでしょうか?

shotaro777
質問者

補足

すばやい回答ありがとうございます。 追加する個所は一番最後です。

関連するQ&A

  • PHPとかperlとかrubyとか

    質問させていただきます。 プログラミング言語を学ぼうと思っています。 ありがちな質問ですが、言語の特徴などを伺いたいと思います。 PHPはWEBに特化した言語だと聞きました。 あとperlはテキスト処理だけでどうも、、、って話も。 rubyはまだプログラムの話で出てこないことも多い。 やりたいことがあっての言語なのは承知しています。 WEBやデータベース、スタンドアロン?の簡単なソフト開発とか、いろいろやりたいことは多いです。 最初に目をつけた敷居が低いとされるWEBに特化したPHPはソフト開発には向かないらしいし、偏ったものもどうかと思ってます。 でも次の言語にJAVAを考えていて(JAVAは習得が難しいと聞きましたので)、PHPはJAVAに多少似ているってどっかのサイトで見ました。たぶん賛否両論はあるでしょうが。 別にWEBプログラムだからってperlでもrubyでもできるんですよね?だったら偏ったPHPよりperl、rubyの方が書いていて楽しいような気がします。rubyの需要はまだ少なそうですし、perlのテキスト処理だけってのもどうなんだろうと思いますが。そこらへんも聞きたいです。 簡単なゲームとか、顧客管理ソフトとか、WEBとかデータベースとか、できれば敷居が低く楽しめる言語があればと思ってます。

  • PerlとPHPで同一ファイルをファイルロック

    PerlとPHPで同一のファイルを読み書きする必要があるのですが、ファイルロックする機構を作るには互いの言語でmkdirで対応したほうがよいのでしょうか? flock関数がPerlにもPHPにもありますが、これは、PHPのプロセスで実行したロックの状態をPerlで検知したり、または逆のことはできないのでしょうか? もしできないとするとmkdirで同一の機構を作ったほうが良い気もしますが、何か問題などは起きないでしょうか。

    • ベストアンサー
    • PHP
  • ファイルへの追加書き込みについて

    こんにちは。Perlを勉強しはじめた者です。 test1.plファイルにtuika.plを起動することで追加書き込みをしようとしているのですが、 その書き込みをプログラムの途中に行おうとしています。 内容としては、test1.plが文字置換を行うもので、その候補をtuika.plで入れてやります。 tuika.pl #!/usr/local/bin/perl use strict; use vars qw($oldword $newword); print "置換元の単語は? \n"; $oldword = <STDIN>; print "置換後の単語は? \n"; $newword = <STDIN>; open (FH, ">>test1.pl") or die "error $!\n"; seek FH, -47, 2; print FH "s/$oldword/$newword/og;\n"; close FH; seek関数は実際には途中書き込みには対応していない(?)ようなので、書き込みが末尾にきてしまい、うまくいきません…。 初心者な質問で申し訳ありませんが、なにか解決策がございましたら、ご教授願います。

  • 追加書き込みと改行コードについて

     お世話になっております。  PHPの初心者です。  PHPの追加書き込みの件で質問です。テキストファイルにテキストを追加書き込みしようと思い、以下のように書きました。 $fp = fopen('data.txt', 'a'); flock($fp, LOCK_EX); $return = fputs($fp, "$namen"); flock($fp, LOCK_UN); fclose($fp);  これでファイルに追加で書き込みはできるのですが、文末に直接つながってしまい改行されないですよね?一度書き込まれるごとに改行したいのですが、改行コードが\nでは追加で書き込みができなくなってしまいました。$returnの値がゼロになってしまいファイルに何も書き込まれなくなってしまいました。 $return = fputs($fp, "$namen\n"); ←この部分に\nを書き足しました。  文字コードはUTF-8で書き、改行コードはLFで統一しています。  PHPの改行コードについてわかる方がいましたらおしえてください。  

    • 締切済み
    • PHP
  • Perl ファイルハンドルを閉じずに反映させる

    お世話になっております。 Perl(プログラミング言語)について質問です。 openメソッドで開いたファイルハンドルに print文で書込みを行った際に、ファイルハンドルをcloseせずに、 書込みを反映させる方法はありますか? 開くのはファイルではなく(他プロセスへの)パイプです。 $| を設定してもだめでした (例としては perl1.pl , perl2.pl を用意する <perl1.pl> $i; open(OUT,"| perl2.pl") while(1){ print OUT "$i" $i++  } close(OUT) <perl2.pl> while( <STDIN> ) { print $_; } のようなことをやりたいです。 上記のようなスクリプトを実行したところ、 perl1のcloseが実行されるまで反映されません。 これをcloseをせずに反映させる方法はありますでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • ファイルの追加

    テキストファイルがいくつかあって、 コンソールからそれをひとつのテキストファイルに まとめるという事はできますか? JavaやC言語でつくろうと思えば作れるのですが、 例えば a.txt b.txt c.txt d.txt というのがあってa.txtにそれ以外のファイルの内容 を追加したいと思っています。 お願いします。

  • UTL_FILEにて既存のExcelに追加書き込みできますか?

    いつもお世話になっております。 他にも質問をしており申し訳ないですが、どうしても困っておりまして新たに質問させていただきます。 UTL_FILEパッケージにて、予め用意しておいた雛形のExcelファイルに対して、入出力モード='A'にて追加書き込みしたいのですが、「PL/SQLプロシージャは正常に完了しました」は表示されますが、実際のファイルには全く追加書き込みされません。 入出力モード='W'にて新たなファイルを作成し、そのファイルに一切触れないまま、入出力モード='A'で書き込みを行うと、最終行に確かに追加されております。ただ、その新たなファイルをオープンして何か加工するとそれだけで追加書き込みができなくなるようです。 そもそも既存のExcelに追加書き込みできるものなのでしょうか? どなたかご教授いただけませんでしょうか? 宜しくお願い致します。

  • PHPスクリプトでperlスクリプト

    はじめまして。PHP初心者です。助け舟をお願いします。 PHPスクリプトで、formの表示からデータの受け取り→ファイルに書込み→終了画面の表示ができるスクリプトを書くことが出来ました。 これをphpスクリプト1とします。 POSTで受け取った変数を元に処理した変数を返すperlスクリプトがあります。 これをperlスクリプト1とします。 perlスクリプト1をphpスクリプトにすることは私には困難なため、phpスクリプト1のファイルに書き込む前に、perlスクリプト1を実行→返った変数をphpスクリプトで使用しファイルに書込み→終了画面の表示を行いたいです。 こんなことってできますか?

    • 締切済み
    • PHP
  • ファイルの先頭に追加書込みする方法について教えて下さい

    今まで、単にファイルの最後にデータを追加するように 下記のように書いていた部分を open(OUT,">>$logfile2") || &error; print OUT "カウント : \[ $pcount \]\n日  時 : \[ $time \]\n"; close(OUT); ファイルの先頭に追加していくようにしたいのですが、うまくいきません。 ミスティーネット・Perl・CGI講座というサイトを参考に下記のようにしてみました。 open(DATA,"+<$logfile2") || &error; seek(DATA,0,0); print DATA "\nカウント : \[ $pcount \]\n日  時 : \[ $time \]\n"; close(DATA); このように書くと追加書込みではなく、書き換えになってしまいます。 また、+<の部分を>>にすると変更前と同様、ファイルの最後に追加されてしまいます。 どこがどういけないのか判る方がみえましたら教えて下さい。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • PerlとphpのCGI版

    Perlは文書に最適化された言語だと今日知りました。 そこで思ったのですが、PerlとphpのCGI版の場合だと ファイルの読み書きなどを考えてみたところ、速度にさほど違いはないのでしょうか? mod_perlとphpのモジュール版の速度は同じくらいだと聞きます となればphpのCGI版はさほど早くなく、Perlと同程度じゃないかと思ったわけです どなたか教えてください!

専門家に質問してみよう