• ベストアンサー

ファイル読込について

現在Javaを勉強していますが何分初心者の為、 わからない事があり質問させて頂きます。 Javaを使ってある固定長ファイルに対して、 読込とファイルの移動を行いたいのですが、 APサーバとDBサーバ とでコーディングの仕方は変わるのでしょうか? また、 どのようにコーディングすればよろしいのでしょうか? 質問がわかりづらく申し訳ありませんが、 ご教授願いませんでしょうか。

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

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

  • ベストアンサー
回答No.1

APサーバとDBサーバそれぞれの役割については、理解できていますか? 簡単に言えば、APサーバは、ユーザが作ったアプリケーションを動かすためのもので、 DBサーバは、APサーバ上で動いているユーザ・アプリケーションからアクセスされ、 必要なデータをDBからアプリに与えてあげるものです。 DBサーバには、Oracle、DB2、MS SQLサーバ、MySQL、PostgreSQLなどがありますね。 やりたいことが、サーバサイド稼働するJavaアプリケーションという前提であれば、 基本的にはTomcatなどのAPサーバ上で動作するJavaアプリを作成することになり、 通常はDBサーバとは分けて考え、分けて運用します。 (小規模なシステムなら、1台のサーバに直接DBサーバとAPサーバを同居させたり、 VMwareなどの仮想化環境を使って同居させるケースもあります) ファイルの読み込みや移動をさせるためのプログラムロジックは、 Javaが稼働する環境であれば、基本的なお作法に違いはありません。 Javaを使ったファイル入出力処理自体を始めたばかりでしたら、まずは固定長という 部分は置いておいて、基本的なファイルの入出力処理を理解されてはいかがでしょうか。 この辺が参考になると思います。 JavaでHelloWorld・ファイル入出力編 http://www.hellohiro.com/fileio.htm Javaの道:入出力 http://www.javaroad.jp/java_io1.htm 固定長ファイルの入出力については、ファイルに含まれるデータ内に日本語などの マルチバイトデータが含まれると、多少複雑な処理をしなければなりません。 同じ日本語文字であっても、ShiftJIS/EUC/UTF8などのcharsetが違うと、バイト数が 異なりますので、charsetの違いによる構成バイト数の違いなども学ばれると良いでしょう。

Soccer1919
質問者

お礼

ご連絡が遅くなり申し訳ありませんでした。 丁寧なご回答ありがとうございました。 記載されたHPを参考に 理解を深めたいと思います。

関連するQ&A

  • javaでcsvファイル読込時の改行について

    javaでcsvファイルを読込・データ登録処理を作成しているのですが、 現在はjavaのreadLine()を使用して読込んでいます。 既存のreadLine()では\rまたは\n、および\r\nにて改行とみなしているようですが、 これを\r\nの場合のみ改行としたいと思っています。 どなたか良い方法をご存知でしたら教えてください。 初心者の為、説明が分かり難かったら申し訳ありません。 よろしくお願いします。

  • 読み込み専用にしたファイルをもとにもどすには?

    FileクラスのsetReadOnly()で読み込み専用にしたファイルを再度もとに戻す(読み込み専用のマークを外す)場合、どのようなコーティングになるのでしょうか? 一応この処理をJavaだけで行いたいのですが、それらしいAPIが見つかりません・・・ ご存知の方いらっしゃいましたら宜しくご教授ください。

    • ベストアンサー
    • Java
  • ファイルの読み込みについて

    いつもお世話になっています。 早速質問なのですが、VBのファイル処理において固定長データのテキストファイル読み込みの処理で、 固定長データの改行コードがChr(10)になっているデータがあります。 下記のどのOpenステートメントを使用しても、1行読み込みではなく全行読み込まれてしまうのです。 ↓ファイルモード (1)Open strInFile For Input As #intInFile (2)Open strInFile For Random As #intInFile Len=文字数 (3)Open strInFile For Binary As #intInFile ちなみに読み込みのモードは ・Line Input ステートメント ・Get ステートメント の2つを使用してみました。 改行コードの種類に依存せずにデータを1行読み込む方法を教えていただきたいです。

  • データファイルの読み込みについて

    はじめまして 100MB、200万行程度のファイルを解析しようとしています。そこで詰まっている所なのですが、 例えば、100行まで読み込んで一旦ストリームを閉じ、他で解析し、次の読み込みで101行からデータを取り 出すといったような処理を実現できないでしょうか? 読み込みは、BufferedReaderのreadLine()で行って おります。BufferedReaderのmark()、reset()で 出来そうな気配もありますが、 なにぶん初心者なもので、全く的外れかもしれません。 どなたかご教授お願いします。

    • ベストアンサー
    • Java
  • javaのResultSetについて

    現在、javaの勉強中です。 そこで、ResultSetについて質問があります。 私は、今まで主にC#で開発をやっていました。 C#だと、クライアント(WindowsForm) → Webサーバー → APサーバー → DB という構成で、サーバー間をデータセットでやり取りしていました。 ただ、javaは私のコーディングミスかもしれませんが、DBサーバーで取得した値を ResultSetに入れて、Connectionやら、StatementをCloseすると、ResultSetも消滅してしまっています。 こういう場合は、取得直後に、なにか別のクラス変数などに移し変えるのが正しいのでしょうか? ただ、そうなると、私の勝手な考えですが必要な列分の配列変数が必要なのでは?と、思ってしまっていて、 そうなると、ナンセンスだな・・・・と思っています。 ほかに何か良いやり方はあるのでしょうか? それとも、そもそも、DB接続の専用クラスというものはJavaに必要なのでしょうか? (上記のC#の考えでいけば、間のWebサーバーとAPサーバーが不要?) よろしくお願いします。

    • ベストアンサー
    • Java
  • C++でのcsvファイル読み込みについて

    C++でのcsvファイル読み込みについて質問です. 読み込みcsvファイルの規模は300*1000として,その情報をdouble型の2次元配列に格納したいですが,ネットでいろいろ調べたり自分でコードを作ってみてもabort()has been calledなどいくつかエラーが表示されてしまい先に進めません. csvファイル名をa.csv,格納したい2次元配列をA[300][1000]などとしてサンプルコードを提供してくださいますと幸いです. 質問前に散々調べましたがプログラミング初心者でして今現在の力では対応できませんでした.申し訳ありませんが何卒ご教示お願いします.

  • Javaのファイル操作

    Javaで下のような数値ファイルを読み込んで, 2 3 3 1 2 5 2 2 2 3 4 3 2 4 1 4 数値をそのまま,二次元配列に入れ込みたいと思います。どのようにすればよいでしょう? 一次元配列までの読み込みと配列の入れ込みはできたのですが・・・。 どなたかご教授よろしくお願いします。 既出でしたら申し訳ありません。

    • ベストアンサー
    • Java
  • JavaでCSVファイルを高速に読む方法

    最近、とある任務があって「数百万レコード」のCSVファイルを読み、 統計解析を実施するAPを自作したいと考えています。 しかし、ファイルのレコード数が膨大なため、解析する前にファイル読み込みに 大きな時間がかかってしまい困っています。 読み込みを高速化するために、複数のスレッドを用意し、スレッド毎に読みこむ レコードの行を決めて、並列処理を行いたいと考えたのですが・・・ ・任意の行をランダムに読むためRandomAccessFileクラスの利用を  考えたがレコードが固定長でないと利用できない。 という点があり断念しています。私も詳しくはわかっていないのですがHadoopという 技術を使ってファイルを分割して並列処理するといった方法が取られているようですが ファイルを高速に読み込む方法について、この質問を見ていただけた方の中で こうすれば高速化できるというノウハウがもしあればご教授いただけるとありがたいです。 またできれば、複数の筐体にファイルを分割して分散処理するという大掛かりの手法ではなく、 一つの筐体で並列処理して高速化したいと考えています。 Javaは、あまり詳しくなくとんちんかんな質問かもしれませんがどうぞよろしくお願いします。

    • ベストアンサー
    • Java
  • C#とjavaのクラス構造について

    現在、C#を勉強中なんですが、都合により、同時にjavaも勉強中です。 そこで思ったのですが、C#の構造とjavaの構造はもちろん違うのですが、ふと疑問に思ったのは、 C#はWebサーバーやら、APサーバー間をデータセットでデータのやり取りをするのですが、 javaは、そういう構造ではなく、色々調べてみると、アクションクラスで、直接、DBにSQLを投げるみたいなことが書かれていました。 C#にたとえると、FormクラスからいきなりDB接続みたいな感じですが、これはいいんでしょうか? C#の方を重点的にやってきたので、なんとなく抵抗がありますが・・・ よろしくお願いします。

  • JAVAの開発環境について

    JAVA初心者です。 サーバサイドのJAVAの開発を行います。 サーバはSun Solaris9で、クライアントは WindowsXPです。 Servletはサーバに格納して動作させるものですが、 このコーディング・コンパイルはWindowsで行って、 コンパイルが通ったものをサーバにコピーする、という方法で開発できるのでしょうか? それともサーバはSolarisなので、コーディングは全てSolarisで行わなければならないのでしょうか。 非常に初歩的な質問で申し訳ないですが、回答をお願いいたします。

    • ベストアンサー
    • Java

専門家に質問してみよう