我正在尝试将文本和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);
那样写,它将不起作用。
我在做什么错了?
谢谢。