猿问

java io 的问题,这个字符UTF有毒。。。

package fileTest;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class DataStreamTest {
	static String file ="E;\\fileTest\\javase.txt";
	public static void main(String[]args) throws IOException{
		DataStreamTest.Data();
		DataStreamTest.Datacopy();
	}
  public static void Data() throws IOException{
	  DataOutputStream dos =new DataOutputStream(new FileOutputStream(file));
	  dos.writeInt(55);
	  dos.writeUTF("中国");
	  dos.writeLong(11);
	  dos.close();
  }
  public static void Datacopy() throws IOException{
	  DataInputStream dis=new DataInputStream(new FileInputStream
			  ("E;\\fileTest\\javac.txt"));
	  int x=dis.readInt();
	  Long y=dis.readLong();
	 String z =dis.readUTF();
	  System.out.println("getInt:" +x);
	  System.out.println("getLong:"+y);
	  System.out.println("getString(utf);"+z);
	  dis.close();
  }
  
}

就是那个字符UTF中国有问题,求帮助。。。

轩莫
浏览 1328回答 1
1回答

产品经理不是经理

int x=dis.readInt(); Long y=dis.readLong(); String z =dis.readUTF(); 读取的时候与写入的顺序不一致,所以会出现问题。把它顺序换一下就好了。 int x=dis.readInt(); String z =dis.readUTF(); Long y=dis.readLong();
随时随地看视频慕课网APP

相关分类

Java
我要回答