-PR-
解決済み

テキストfileの入力、変換、出力

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

お礼率 13% (3/22)

javaを始めたばかりのものです。
機能概略:
(1)テキストfile "in.c"をbuf[]に読み込む
(2)buf[]の内容を変換する。
(3)テキストfile "out.c"にbuf[]の内容を書き出す
問題点:
・コンパイルは、OK。
・実行時、下記 エラ-メッセ-ジがでてしまいます。
Exception in thread "main" java.lang.NoSuchMethodError: main

・ポインタ-が無いので、値渡しで渡して、値をかきかえることは無理?

以下
ソ-ス _002.JAVA
import java.io.*;
class ChangeData {
//コンストラクタ
ChangeData() {
}
/*++ 指定されたファイル名を読み込み*/
void SetInputData(String inputFile,
byte bBuf[],
int iInCntMax) {
//ファイルの読み込み処理を記述
//iInCntMaxに読み込みサイズを設定
}
/*++ データの変換処理 */
//ファイルの変換処理を記述
//この処理はまだ未記述
/*++ 指定されたファイルへ書き込み*/
void PutOutputData(String inputFile,
byte bBuf[],
int iInCntMax) {
//ファイルの書き込み処理を記述
//iInCntMaxサイズ分
//iInCntMaxに読み込みサイズを設定
}
}/*end クラス*/
/* メインルーチン----------------------------*/
class _002 {
public static void main() {
int iInCntMax,iOutCntMax;/*入力/出力buf長*/
ChangeData data = new ChangeData();
byte bBuf[] = new byte[0x100];
iInCntMax=iOutCntMax=0;
data.SetInputData("in.c",bBuf,iInCntMax);
data.PutOutputData("out.c",bBuf,iOutCntMax);
}
}
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル13

ベストアンサー率 24% (357/1463)

もう一つ質問があったのですね。
・ポインタ-が無いので、値渡しで渡して、値をかきかえることは無理?
という件ですが、一般論としてはa-kumaさんの回答の通りです。
が、ご質問のソースの中にある
//iInCntMaxに読み込みサイズを設定
というのは、無理です。
とりあえず、この場合は、関数の戻り値の型をintにしてそこへ返してしまう
のが手っ取り早い解決法ですが、本当はもう少しオブジェクト指向の基本的な
考え方を勉強して欲しいところです。
(ヒントだけ言うと、ChangeDataというのは名前からして手続き指向です。
「読み込まれたデータ」を表すクラスが一つあれば足りるケースだと思います。)
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

試していないのですが、

> ・実行時、下記 エラ-メッセ-ジがでてしまいます。
> Exception in thread "main" java.lang.NoSuchMethodError: main

エラーメッセージ通りで、class _002 のメソッド main() で、存在しない
メソッドを呼ぼうとしています。多分 ChangeData クラスのメソッドだと
思います。メソッド名と、その引数の方を再確認しましょう。

> ・ポインタ-が無いので、値渡しで渡して、値をかきかえることは無理?

Java はポインターと呼んでいないだけで、ほとんどが「参照」ですから、
心配するに及びません。
補足コメント
komahara

お礼率 13% (3/22)

publicに変更してためしましたが、
やはり
Exception in thread "main" java.lang.NoSuchMethodError: main
のメッセ-ジがでてしまいます。
投稿日時 - 2001-06-21 13:07:31


  • 回答No.2
レベル13

ベストアンサー率 24% (357/1463)

ChangeData クラスのメソッドにpublic指定が無いので、
他クラスのメソッドであるmain()から見えないのだと思います。
void SetInputData( → public void SetInputData(
void PutOutputData( → public void PutOutputData(
としたら良いのでは。
  • 回答No.4
レベル13

ベストアンサー率 24% (357/1463)

あ、そうか。
Java の main メソッドは、引数なしはありません。常に
public static void main( String[] args )
です。
このQ&Aで解決しましたか?
AIエージェント「あい」

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

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

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

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

特集


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

-PR-

ピックアップ

-PR-
ページ先頭へ