2012-02-26 17 views
3

私は次のコードを書いています。私はなぜそれが動作しているのか理解していない。Java-Textファイルを読み込んで配列として保存する

本当にありがとうございます。

import java.util.Scanner; 
import java.io.*; 

class ReadFiles { 
    String [] codes = new String[99]; 
    int i = 0; 

    private Scanner readCodes; 

    public void openCodesFile() { 
     try { 
      readCodes = new Scanner(new File("C:/Users/Carlo/Desktop/Files/codes.txt")); 
     } catch (Exception e) { 
      System.out.println("Could not locate the data file!"); 
     } 
    } 

    public void readCodesFile() { 

     while(readCodes.hasNext()) { 
      codes[i] = readCodes.nextLine(); 
      i++; 
      System.out.println(codes[i]); 
     } 
    } 

    public void closeCodesFile() { 
     readCodes.close(); 
    } 
} 

class NewHardware { 
    public static void main(String[] args) { 
     ReadFiles codesRead = new ReadFiles(); 
     codesRead.openCodesFile(); 
     codesRead.readCodesFile(); 
     codesRead.closeCodesFile(); 
    } 
} 

出力は「ヌル」を複数回出力します。

また、コードを印刷するだけでなく、NewHardwareクラスのコード配列を使用して操作(印刷、切り捨てなど)できるようにします。

public String readCodesFile() { 

     while(readCodes.hasNext()) { 
      codes[i] = readCodes.nextLine(); 
      i++; 
      System.out.println(codes[i]); 
     } 
        return (codes[i]); 
    } 

か何かが、それはまだ働いていない:

私はreadCodesFile()で次のことをやって考えていました。正しい軌道にいるのですか?

G22 
K13 
S21 
I30 
H15 
N23 
L33 
E19 
U49 

EDIT:私の白痴で私を助けるためにトニーと以下Churkに

おかげ

ああ、ただのテキストには、以下が含まれていることを追加したいです。私はトニーの答えを基本的に受け入れています。なぜなら、彼は私にチャレンジしたチャークですが、チャークの答えは同じくらい貴重です。私の質問の後半部分については

(私はクラスNewHardwareでそれを使用することができることについて尋ねたところ)、私は次のようでした:

class NewHardware { 
    public static void main(String[] args) { 
     ReadFiles codesRead = new ReadFiles(); 

     codesRead.openCodesFile(); 

     codesRead.readCodesFile(); 

     for (int i = 0; i < 9; i++) { 
      System.out.println("\n\n" + codesRead.codes[i]); 
     } 

     codesRead.closeCodesFile(); 
    } 
} 

これはもちろんありません最終的なプログラムコードであるが、これは持っています私は基本的な考えを得るのを助けた。これが他の人にも役立つと願っています

+1

+1仕事をしてコヒーレント質問をためのコードを印刷しています。 –

答えて

1

あなたのreadCodesFile()メソッドを注意深く見てください。すべての行を見てください。それは何ですか?あなたはそれを私たちに説明できますか?

+0

さて、テキストファイルのコードを配列に追加したいと思っていました。私はこれに新しいです、決してそれをしなかったので、私は間違ってやっていることを本当に理解できません。私は間違ったことがあると知っていますが、それが何であるか分かりません。それで、私はここにいくつかの種類の方向を得るためにそれを掲示しました。 –

+0

"コード[i] = readCodes.nextLine();"行を読み込んでコード[j]に詰め込む。次に、 "i ++"はインデックスをインクリメントします。今printlnで何が起こるのですか? –

2
codes[i] = readCodes.nextLine(); 
      i++; 
      System.out.println(codes[i]); 

あなたは[私は++]

+1

あなたのi ++をSystem.out.printlnの後に置く(コード[i]); – Churk

+0

答えをありがとう、私は以下のトニーのためにそれを理解し、あなたの答えとコメントを読んでください。 –

関連する問題