外部ファイル操作について

このQ&Aのポイント
  • 外部ファイルへの入出力の方法と注意点
  • 書き込み専用ファイルと読み込み・書き込み時の1行目の保持方法
  • 1行目の存在判定方法
回答を見る
  • ベストアンサー

外部ファイル操作について

外部ファイルへの入出力のやり方についてアドバイスお願いします。 外部ファイルは 書き込み専用(Sample.txtの内容を書き込む)のファイル「Test.txt」と 書き込む内容を記載してあるファイル「Sample_01.txt」と「Sample_02.txt」の2種類を用意しておきます。 「Sample_01.txt」には 1.おはよう 2.こんにちは 3.こんばんは Sample_02.txt」には 1.いただきます 2.ごちようさま 「Test.txt」の1行目には 【Sampleテキストの内容】 という文字列をそれぞれ初めから記載しておきます。 ファイルの読み込み・書き込みにおいて、「Test.txt」に1行目(【Sampleテキストの内容】 )を消さずに読み込み・書き込みするにはどうしたらよいのでしょうか。 また、「Test.txt」に1行目に【Sampleテキストの内容】という文字列が存在するかを判定するにはどうしたらよいのですか。 お手数ですが、アドバイスお願いします。 出力はDOS画面に行います。

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

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

  • ベストアンサー
  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.1

>ファイルの読み込み・書き込みにおいて、「Test.txt」に1行目(【Sampleテキストの内容】 )を消さずに読み込み・書き込みするにはどうしたらよいのでしょうか。 RandomAccessFileクラスを用いればできます。 ポインタを任意の点まで動かしてそこからファイルに記述することができます。 もしくはFileOutputStream(ファイル名、true)でも追加書きができたと思います。 また別の方法としては 一度ファイルを読み込んで読み込んだ内容を出力してから付け足したい内容を付け足しても良いと思います。 >また、「Test.txt」に1行目に【Sampleテキストの内容】という文字列が存在するかを判定するにはどうしたらよいのですか。 これは一度ファイルを読み込んで読み込んだStringに その文字が含まれるかを判定すればいいと思います。 startWithかindexOfを使うことになると思います。

関連するQ&A

  • 外部からファイルを読み込んだページを作りたい

    HTMLページを作っているのですが以下のようなことは実現できないでしょうか。 (1)HTMLの"タイトル"に表示する文字列を、外部のテキストから読み込む。 (2)外部のテキストを更新すれば、(1)のHTMLの"タイトル"も変更される。 この様なHPを作りたいと考えています。 たとえば <title>こんにちわ</title> とべた打ちするのではなく、 titletext.txtというファイルに「こんにちは」と入力し、 <title></title>内にその内容(こんにちはという文字)を読み込むようにしたいです。

  • Flashで外部ファイルの指定行のみ取り出し表示

    初心者です。 当初は、ActionScriptで外部ファイルphpを読み込み、phpの中にtxtから取り出した文字列を表示しようとしていました。 多分、これでもできると思いますが、ActionScriptからphp経由せず、直接txtから取り出せないかと思い、質問します。 ActionScriptで外部ファイル(txt)の中身の2行目だけ取り出すという方法はできるのでしょうか? <テキスト例(txt)> 花子 東京都 乙女座 このうち2行目の東京都だけ取り出すということです。 こちらの方が、phpをわざわざ挟まずにシンプルだと思いました。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 沢山のテキストファイルを一つに

    下のように、Testフォルダに Area1、Area2・・・とフォルダがあり、 その中に、Sample.txtがあります。 C:\Test\Area1\Sample.txt C:\Test\Area2\Sample.txt C:\Test\Area3\Sample.txt ・ ・ ・ C:\Test\Area30\Sample.txt それぞのフォルダのSample.txtは "1234567890.123" "2345678901.234" "3456789012.345" . . . のように、数桁の数字が数百行並んでいます。 例えば、 Area1\Sample.txt に100行、 Area2\Sample.txt に200行、 Area3\Sample.txt に150行あるとします。 これを、 1~100行にArea1\Sample.txtの内容を、 101~300行にArea2\Sample.txtの内容を、 301~450行にArea3\Sample.txtの内容を、 として、Area30までのSample.txtを並べた 一つのテイストファイルに書き直したいのですが、 何しろ沢山あるので、一つ一つ開いてコピぺでは、 書き落としなども心配ですし、毎回大変時間が掛かります。 簡単に並べて書き出す方法はないでしょうか。 Excel等を使ってできないでしょうか。 宜しくお願いします。

  • C/C++ ファイル入出力操作 (長文です。)

    C/C++歴4ヶ月の初心者プログラマーです。現在、 C/C++でのファイル入出力で大変困っております。 その内容というのはファイルをオープンし指定した テキストファイルに書き込む時に制限をかけたいのです。 例えば、 ファイルに書き込む内容が50行を超えた場合 1番始めに書き込まれた1行目の内容を削除して、 2行目~50行目のデータを1行繰上げて、最新のデータを 50行目に書き込んでいく処理をしたいのですが僕一人では 全くわからず先に進めない状態です。どなたかわかる方 おられますか?よろしければご伝授してください。 途中までのソースを載せておきますので宜しくお願いいたします。 Cで書いていますがC++でも方法があればお願いいたします。 /****************************** サンプルソース ******************************/ #include <stdio.h> #include <stdlib.h> int main(void) { FILE *fp //ファイルポインタの宣言 char str[] = "テスト書き込み"; if((fp=("test.txt","w"))==NULL) //ファイルオープン { exit(1); //ファイルオープンエラー時 } //ここの処理がわかりません。50行まできたら1行目を削除し //2行目~50行目を1行繰上げ、最新データを50行目に書き込み fprintf(fp,"%s\n", str); fclose(); }

  • C言語 ファイル入出力について

    test.txtというテキストファイルに入力されている文字を読み込んでtest1.txtに7文字になったなら改行して2行目に書き込み、また2行目が7文字以上になったら3行目に書き込むというプログラムを作りたいのですがどうもうまくいきません。色々ネットで探したりしたのですがstrlenをうまく使うのかな~ぐらいしか見当はつきません・・・。 何かよいアドバイスをお願いします!m(_ _)m 例 test.txt --------------------------------- 私の一番好きな食べ物はリンゴです。 --------------------------------- ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ test1.txt ---------------------------------- 私の一番好きな 食べ物はリンゴ です。 ----------------------------------

  • ファイル操作について、テキストファイルの書き換え

    よろしくお願いします。 データファイルAからデータを取得して、テキストファイルBの内容の一部を取得したデータで書き換えるという操作を行うプログラムを作りたいです。 具体的には、 データファイルA[A.txt]の中身 111 222 333 444 テキストファイルB[B.txt] 文字列1="123" 文字列2="234" 文字列3="345" 文字列4="456" というような二つのファイルを読み込み、B.txtの""で囲まれた部分を、A.txtで取得したデータで置き換えるような操作を行いたいのですが・・。 使用する言語としてはスクリプト言語であるperl、もしくはプログラム作成経験があるCを使用しようと思っています。(perlは未経験で入門書を読んでいるレベル)

    • ベストアンサー
    • Perl
  • テキストファイルの操作で教えてください!

    テキストファイル操作について教えて下さい。 膨大な数のテキストファイルがあります。 中身は改行などを含む ---------- ・ ・ ・ 1. 文字列 文字列 文字列 2. 文字列 文字列 文字列 。 。 。 ---------- の様な形です。 1つのファイルに1.~100.まであります。 この1.から100.までを全ファイル抜出すか前後の行を削除し、1つのファイルにしたいです。 どうすればできるか教えてください。 お願いします。

  • ファイル操作について

    こんばんわ。 fopen関数を用いて、テキストファイル出力を行なっています。 fp = fopen("test.txt","a+"); のように、a+を用いれば、 X1・・・・・ X2・・・・・ X3・・・・・ と、書き込まれた内容が消去されずに書き込まれていきます。この場合、X1,X2,X3は、行単位で実行するたびに書き込まれていきます。 例えば、 X1[タブ]X2[タブ]X3・・・・・ と言うように、X1とX2の間にタブまたはスペースを挿入し、列単位で前回書き込んだ内容を消去せずにファイルへ書き込んでいく方法はありますでしょうか? よろしくお願い致します。

  • バッチファイルでテキストファイルの文字列を取得したい

    すみません、どなたか教えて下さい。 バッチファイル(test.bat)内で、他のテキストファイル(ok.txt)の文字列を取得したいです。 ok.txtは 20070614 TEST となってます。 この2つの文字列をそれぞれで取得する方法を教えて下さい。 よろしくお願い致します。

  • 複数のファイルを読み込み、1つのファイルとして出力する方法。

    Nakanoです。いつもお世話になっております。 例えばテキストファイルを2つ用意し、1つのテキストファイルとして 出力したいのですが、いまいちやり方が分かりません。出来るのかどうかも 分からないです。(汗) 下にサンプルデータがあります。取り合えず「in1.txt」「in2.txt」 を最終的に『out.txt』の様に仕上げたいのですが… # =in1.txt AAAAA BBBBB CCCCC DDDDD 1,000 2,000 3,000 4,000 1,001 2,002 3,003 4,004 1,010 2,020 3,030 4,040 1,100 2,200 3,300 4,400 =in2.txt EEEEE FFFFF GGGGG HHHHH 5,000 6,000 7,000 8,000 5,005 6,006 7,007 8,008 5,050 6,060 7,070 8,080 5,500 6,600 7,700 8,800 # =out.txt AAAAA BBBBB CCCCC DDDDD EEEEE FFFFF GGGGG HHHHH 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 1,001 2,002 3,003 4,004 5,005 6,006 7,007 8,008 1,010 2,020 3,030 4,040 5,050 6,060 7,070 8,080 1,100 2,200 3,300 4,400 5,500 6,600 7,700 8,800 # ・このデータはタブで区切っています。カンマはない場合もあります。 ・ファイルの中のそれぞれの文字列の数は固定です。行数も固定です。  各文字列の中の文字数はランダムです。  COPYコマンドを利用しても考えてみたのですが、後ろに続いちゃって  上手くいかなかったです。(笑)  Perlだと1つ目のファイルの1行目を配列に入れて、次に2つ目の  ファイルの1行目を配列に入れて、これを一旦出力して、同じ手順の  様な事を行を2行目、3行目、4行目、、とずらして繰り返す。って  感じでイメージしているのですが、どの様にソースを組めばいいのか  分かりませんでした。  どなたかご教授いただけないでしょうか? 宜しくお願い致します。

専門家に質問してみよう