Java 我可以´;t将向量表的数据写入文本文件,但程序运行正常

Java 我可以´;t将向量表的数据写入文本文件,但程序运行正常,java,vector,fileoutputstream,Java,Vector,Fileoutputstream,程序运行平稳,我可以在编辑器中看到向量的值,但在文本文件中看不到值 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.

程序运行平稳,我可以在编辑器中看到向量的值,但在文本文件中看不到值

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
这三行是我想要在文本文件中显示的值

 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);
我在下面调用静态方法

//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);
    }
//jeg kalder den静态metode保存(向量v,字符串sti)
FileManagement.save(dataTabel,sti);
//关于være和nyt的数据,请参阅påharddisken的gemmer vector
向量nyDataTabel=新向量();
nyDataTabel=FileManagement.load(nyDataTabel,sti);
/*Henter tabellen påharddisken,som ikke bør være et menupunkt,他们是一个好朋友
påharddisken,når程序启动器*/

对于(int idx=0;idx虽然没有完整的代码,我无法在我的站点中运行您的代码,但我猜FileManagement.save()似乎调用了skriv()来保存表。因此,我想建议您可以尝试使用skriv()方法


skriv()中的第一个write()获取datatabel.get(i)进行写入,但是datatabel的每个元素的类型都是一个对象,而不是一个值,因此我建议使用对象序列化而不是BufferedReader。或者,您可以将字段分隔为字符串,这会导致三个文件写入(或一个由三个字符串组成的串联字符串的写入)每个i.

后来我找到了解决方案,因为对象序列化,这几乎就像你说的那样,我忘记添加对象序列化,然后删除了另一个包含BufferedReader的方法。
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
    }