-PR-
解決済み

配列のファイルへの出力について

  • 困ってます
  • 質問No.3597762
  • 閲覧数940
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 54% (276/507)

fortranでできるファイルへの配列の出力をJAVAでどのようにプログラムするか教えて頂きたいと思います。
2次元配列a(i,j)の出力はfortranでは以下のようなプログラムになります。
open(10,.省略...) ファイルを指定して開く
do j=1,ny                ループj  
write(10,'(100f10.3)') (a(i,j),i=1,nx) ループi+書き出し
enddo                  ループjの最後尾 
close(10)                ファイルを閉じる

100f10.3というのは小数点3桁の実数で10カラムで表現したものが100個並ぶという意味です。これと同じことをやるJAVAプログラムを教えて頂きたいのですが。私の手元にある本にはやり方が載っていません。
JAVAにはfortranのような数字のカラムを指定するようなフォーマットの調整などできるのでしょうか。よろしくお願いします。

この質問は、C言語について以前質問したものですQNo.3590702。
JAVAだったらどうなるだろうと思ってお尋ねしています。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル9

ベストアンサー率 62% (36/58)

Javaでは例外処理などの決まりがあるため複雑になります。
処理の部分だけ抜き出すと次のような記述になります。
(例外処理やmainメソッドなどは省略)

final int nx=10;
final int ny=10;
double a[][]=new double[nx][ny];

PrintWriter pw=new PrintWriter("out.txt");
for(int i=0;i<nx;i++){
for(int j=0;j<ny;j++){
pw.printf("%10.3f",a[i][j]);
}
}
pw.close();

%10.3fというのがフォーマットの指定です。
お礼コメント
skmsk19410

お礼率 54% (276/507)

有難うございました。
for(int i=0;i<nx;i++){
for(int j=0;j<ny;j++){
pw.printf("%10.3f",a[i][j]);
}
}
括弧が入れ子になっており、内側のループjでは10.3fのフォーマットで
横方向にずらっと数字が並び、外側のループiではそれが改行されるという風に理解しましたが。
投稿日時 - 2007-12-18 22:50:02
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル9

ベストアンサー率 62% (36/58)

#1です
#1では10x10の2次元配列を出力する例です。

>外側のループiではそれが改行される
#1の記述では改行はしていません。1行に100個のデータが並びます。
必要であれば「pw.println();」を挿入することで、改行を出力する
ことができます


このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ