2

PRINT() メソッドが VehicleCollection クラスにあり、メイン クラスで呼び出された場合、Java プロジェクトのクラス FileWrite からの txt ファイルの書き込みに問題があります。問題はありません。しかし、 FileWrite という名前の別のクラスに print メソッドを配置し、このクラスの main メソッドで呼び出します。ここでコードの平和。正しい質問を書くことを願っています。私のコードについてもっと説明する必要がある場合は、そうします。

私は3つのクラスを持っています.1番目のクラスは:

public class VehicleCollection  {

    private  ArrayList<VehicleInterface> arrList = new ArrayList<>();

    public ArrayList<VehicleInterface> getArrList() {
        return arrList;
    }

    void  setArrList(ArrayList<VehicleInterface> w){
        arrList = w;
    }

    public void getCollection() throws FileNotFoundException, IOException {
        Here Add in ArrayLIst...
    }
}

2 番目のクラスは次のとおりです。

public class FileWrite extends VehicleCollection {

    FileWrite(ArrayList<VehicleInterface> w){
        setArrList(w);
    }

    public void print() throws FileNotFoundException {

        Writer writer = null;
        try {
            String text = getArrList().toString();
            File file = new File("krasiWrite.txt");
            writer = new BufferedWriter(new java.io.FileWriter(file));
            writer.write(text);
            ...
        }

3 番目のクラスはメイン クラスです。

FileWrite fw =  new FileWrite();
fw.print();

ここにエラーがあります:指定された型に適用できません必要なArrayList

4

2 に答える 2

8

ファイルの書き込みは通常、オペレーティングシステムによってバッファリングされます。変更がディスクに確実に反映されるようにするには、close()またはライターのいずれかを実行する必要があります。flush()ファイルが完成したら、ファイルを閉じます。閉じると、バッファが自動的にフラッシュされます。

于 2012-12-27T19:41:01.613 に答える
3

すでに Java 7 を使用しているので、try-with-resources コンストラクトを使用して、ストリームを閉じるなどの操作を行う必要がないようにしてください。

try( File   file = new File("krasiWrite.txt"); 
     Writer writer = new BufferedWriter(new java.io.FileWriter(file)); )
{ 
     String text = getArrList().toString();
     writer.write(text);
     writer.flush(); // this lines takes whatever is stored in the BufferedWriter's internal buffer
                     // and writes it to the stream
}
catch(IOException ioe) {
   // ... handle exception
}

// now all resources are closed.
于 2012-12-27T19:47:52.853 に答える