2

メニューから食品などを作るレストランシステムを作ろうとしています。

すぐにjdbcを学習し、それが役立つと確信していますが、今のところ、最も簡単な方法はメモ帳でメニューを作成することだと思います。

メニューのようにメモ帳ファイルを並べて読み取るための最良の方法は何ですか。

すべての用語が正確にわからないので、はっきりと話してみてください。

これは有望に見えますが、何が起こっているのかわかりません。

////////////////////////////////////////////////// ///////////////////

私はまだこれで立ち往生しています。

iveは、ファイルを読み取るために別の方法を作成することも決定しました。

iveは私が考えることができるすべての例を試しました。誰かがファイルのクラスパスを定義する方法の例を教えてくれませんか。

menu.txtと入力すると、機能しません。

4

6 に答える 6

7

SunのJavaチュートリアルをご覧ください

于 2010-01-13T13:58:34.610 に答える
2

http://java.sun.com/j2se/1.5.0/docs/api/java/io/BufferedReader.html#readLine()

于 2010-01-13T13:52:27.690 に答える
2

最も簡単なオプションは、Apache Commons IO JARを使用して、org.apache.commons.io.FileUtilsクラスをインポートすることです。このクラスを使用する場合、多くの可能性がありますが、最も明白なのは次のとおりです。

List<String> lines = FileUtils.readLines(new File("untitled.txt"));

とても簡単です。

「車輪の再発明をしないでください。」

他の(さらに単純な)可能性があるので、このファイルからどのような種類のコンテンツ/データを読み取るのか尋ねてもいいですか?

すなわち

プロパティ

foo = "bar"

文字列トークン

foo、bar、fu、baz

私が言及したプロセスのいずれかで詳細が必要な場合はお知らせください。

于 2010-01-13T14:00:19.097 に答える
1

「メモ帳」ファイルは単なるテキストファイルなので、Readerインスタンスで読み込むだけです。メモ帳はWindowsUnicodeをサポートしているため、「UTF-16LE」の文字セットを指定する必要がある場合があります。

于 2010-01-13T13:54:07.097 に答える
1

基本的な考え方は、ファイルリーダーオブジェクトを作成することです

FileReader fr = new FileReader('file.txt');

次に、各行を1行ずつ解析し、内部データストレージ(Array、HashMap)に保存します。

あなたが持っている例のwhileループはまさにこれを行います。クラスはあなたFileReaderに代わって行末を処理し、null読み取る行がなくなると戻ります。whileループ内で行う必要があるのは、各行を解析し、データのさまざまなビット(コース名、価格など)を互いに分離することです。

編集:行を解析するには、次のようにします。whileループの内容は、メニューファイルのフォーマット方法によって異なります。以下は、メニューファイルに価格とコース名が(この順序で)各行にコンマで区切られて含まれていることを前提としています。

12.95$,Penne ala Arabiata
8.15$,Fish Soup

これを行う場合、価格にコンマを使用できないことに注意してください。もちろん、データフィールド間の区切り文字として、コンマの代わりにセミコロンを使用することもできます。もちろん、データフィールドの数もあなた次第です。

String line = "";
// read lines from file
while ((line = fr.readLine()) != null) {
    // parse each line
    tokens = line.split(",");
    String price = tokens[0];
    String courseName = tokens[1];
    // extract all other information
}

最終的なコードでは、データフィールドをファイルから抽出するだけでなく、何らかの構造に保存する必要があります。もう1つの注意点は、ドル記号のため、価格は数値ではなく文字列であるということです。価格を使用して計算を行う場合は、もちろん、parseFloat()またはを使用して数値に変換する必要がありますparseDouble()

もちろん、csv(コンマ区切り値)形式を使用する場合は、パーサーを自分で作成するのではなく、csvライブラリを使用して解析を行うことをお勧めします。

http://opencsv.sourceforge.net/

于 2010-01-13T13:57:54.203 に答える
1
String filename = "myfile.txt";
BufferedReader reader = new BufferedReader(new FileReader(filename));

try{
  String line;
  //as long as there are lines in the file, print them
  while((line = reader.readLine()) != null){ 
    System.out.println(line);
  }
} catch (IOException e) {
  e.printStackTrace();
}
于 2010-01-13T13:58:39.680 に答える