如果字符串长度不相同,则二进制文件不保存

时间:2019-05-26 12:31:42

标签: java binaryfiles

我正在尝试将文本和int值保存在二进制文件中,但无法正常工作。

这是我的代码。

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.util.Scanner;
import java.io.InputStreamReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FilterOutputStream;
import java.io.FileOutputStream;
import java.util.Random;
public class Test{

    public static void main(String[] args) throws FileNotFoundException, IOException {
        Scanner input=new Scanner(System.in);
        System.out.println("Enter first name of doctor : ");
        String fn=input.next();
        System.out.println("enter middle name of doctor : ");
        String mn=input.next();
        FileOutputStream os=new FileOutputStream("Doctorsdata.txt");
        DataOutputStream file=new DataOutputStream(os);

        file.writeUTF(fn.trim());
        file.writeUTF(mn.trim());

        FileInputStream osb=new FileInputStream("Doctorsdata.txt");
        DataInputStream osa=new DataInputStream(osb);
        System.out.println("a "+osa.readUTF());
        System.out.println("b "+osa.readUTF());
        file.close();
}
}

这是我的输入

fn                        mn                         Output
abc                       def                         ̀a扡c搃晥
abc                       defg                         abc defg

如果我将fn和mn写成相同的长度,它将起作用,如果它们的长度不相同,则将无法如上工作。另外,如果我有一个byte类型的第3个变量,并且在第一个输入的情况下我将像file.writeByte(age);那样写,它将不起作用。

我在做什么错了?

谢谢。

0 个答案:

没有答案