2017-03-07 4 views
0

プログラムはスムーズに実行され、エディタでベクトルの値を見ることができますが、テキストファイルベクトルテーブルのデータをテキストファイルに書き込むことはできませんが、プログラムは問題なく実行されます

FileManagement FileManagement = new FileManagement(); 
      String sti = "D:\\El teknik/Data.txt"; 
     /*En Vector er en liste af andre objekter, men den kan betragtes som en tabel 
     ligesom et array. Fordelen ved en Vector er, at ikke angives en bestemt længde 
     i tabellen*/ 
      Vector dataTabel = new Vector(); 
     // konstruktør til at initialisere objektet 

これら3行はテキストファイル内の私が欲しいの値

Data dataoplysning1 = new Data("Hjemmeside","brugernavn","password"); 
/*Jeg kalder min vektor personTabel og gemmer oplysninger i vector´en og vector 
Vector klassen har en metode add(objekt), der tilføjer et objekt sidst i vektoren 
*/ dataTabel.add(dataoplysning1);/*dette er et menupunkt, som opretter et objekt 
og gemmer i vector´en*/ 
    Data dataoplysning2 = new Data("Facebook.com", "Bjarne Olsen", "The1bad32feel"); 
    dataTabel.add(dataoplysning2); 
    Data dataoplysning3= new Data("Twitter", "Herman Jessen","Degode3fort3l"); 
    dataTabel.add(dataoplysning3); 

iは

//jeg kalder den static-metode save(Vector v, String sti) 
    FileManagement.save(dataTabel,sti); 
//det kan være et nyt menupunkt, som gemmer vector´en på harddisken 
    Vector nyDataTabel = new Vector(); 
    nyDataTabel=FileManagement.load(nyDataTabel,sti); 
/* Henter tabellen på harddisken, som ikke bør være et menupunkt, men filen hentes 
på harddisken, når programmet starter*/ 
for (int idx=0;idx<nyDataTabel.size();idx++) 
{ 
    dataoplysning1=(Data)nyDataTabel.elementAt(idx); 
    System.out.println("Hjemmeside. :"+dataoplysning1.getHjemmeside()); 
    System.out.println("Brugernavn. :"+dataoplysning1.getusername()); 
    System.out.println("Password. :"+dataoplysning1.getpassword()); 
    System.out.println("---------------------------------------"); 
} 
//Et menupunkt som udskriver hele vector´en 
for (int idx=0;idx<nyDataTabel.size();idx++) 
{ 
    dataoplysning2 = (Data)nyDataTabel.elementAt(idx); 
    String Hjemmeside = dataoplysning2.getHjemmeside(); 
    if (Hjemmeside.compareTo("Facebook.com")==0) 
    { 
     System.out.println("Find følgende brugernavn og password"); 
     System.out.println("Hjemmeside. :"+dataoplysning2.getHjemmeside()); 
     System.out.println("Brugernavn. :"+dataoplysning2.getusername()); 
     System.out.println("Password. :"+dataoplysning2.getpassword()); 
     idx=nyDataTabel.size(); 
    }/*Det er et menupunkt, der søger efter brugeroplysninger på en bestem 
hjemmeside i vector´en*/ 
else { 
     System.out.println("Dataerne passer ikke med hinanden"); 
    } 
}  
// AES_encryption.user();//kalder metoden 
    AES_encryption.skriv(sti, x); 
    } 
下の静的メソッドを呼び出してダウンしています

それは問題が

public static void skriv(String fileName, Vector dataTabel) throws IOException 
    { 
     BufferedWriter outputWriter=null; 
     outputWriter = new BufferedWriter(new FileWriter(fileName)); 
    for (int i = 0;i <dataTabel.size();i++) 
    { 
    //skriver enten 
    outputWriter.write(dataTabel.get(i) + ""); 
    // eller 

    outputWriter.write(Integer.toString((int) dataTabel.get(i)));//her gemmer den arrayet til tekststrengen 
    outputWriter.newLine();//den går videre til en ny linje 
    } 
    outputWriter.flush(); //gemmer arrayet til tekstrengen filnavn 
    outputWriter.close();//afslutter gemning af fil og metoden 
    } 

答えて

0

全体のコードなしで、私は自分のサイトにあなたのコードを実行することはできませんが、私は(FileManagement.saveを推測ある場所ですテキストファイルに出ベクトル値を書き込みところ、以下の方法があります)テーブルを保存するskriv()を呼び出すようだ。ですから、私はskriv()メソッドで試してみたいことを提案したいと思います。

skriv()の最初のwrite()はwrittingのためにdatatabel.get(i)を取得しますが、datatabelの各要素の型はObjectであり値ではないため、BufferedReaderではなくObject Serializationを使用することをお勧めします。または、フィールドを文字列に区切って、iごとに3つのファイル書き込み(または3つの文字列の連結文字列の書き込み)を行うこともできます。

+0

まあ、私は後で解決策を見つけた、それはほとんど私が追加するのを忘れて、その後私はBufferedReaderを含む他のメソッドを削除するオブジェクトのシリアル化のために言ったようだった。 –

+0

それはあなたのために良いと思う! – fcmonoid

関連する問題