这段代码里DataInputStream.readLine过时,在功能不变的情况下怎么改?
如果用BufferedReader,它没有readDouble类似的方法
DataInputStream in5 =
new DataInputStream(
new BufferedInputStream(
new FileInputStream("Data.txt")));
System.out.println(in5.readLine());
System.out.println(in5.readDouble());
如果用BufferedReader,它没有readDouble类似的方法
DataInputStream in5 =
new DataInputStream(
new BufferedInputStream(
new FileInputStream("Data.txt")));
System.out.println(in5.readLine());
System.out.println(in5.readDouble());
DataInputStream d = new DataInputStream(in);
替换为:
BufferedReader d
= new BufferedReader(new InputStreamReader(in));
API啊,看看就有说明了
DataInputStream.readDouble啊,就多开一个引用而已
String line = br.readLine();
while (null != line)
{
System.out.println(br.readLine());
line = br.readLine();
}
import java.io.FileInputStream;
import java.io.ObjectInput;
import java.io.ObjectInputStream;public class Test {
public static void main(String[] args) throws Exception {
ObjectInput oi = new ObjectInputStream(new FileInputStream("xxx.xxx"));
System.out.println(oi.readLine());
System.out.println(oi.readDouble());
}}
PrintStream ps=new PrintStream(new FileOutputStream(file,true))
D:\JavaWork\mySave>java test data.txt
hello, this is data.txt
java.io.EOFException
at java.io.DataInputStream.readFully(DataInputStream.java:180)
at java.io.DataInputStream.readLong(DataInputStream.java:399)
at java.io.DataInputStream.readDouble(DataInputStream.java:451)
at test.main(test.java:24)//test.java
import java.io.*;public class test
{
public static void main(String[] args)
{
try
{//写
File fi = new File(args[0]);
if(fi.exists())
fi.delete();
fi.createNewFile();
DataOutputStream dos = new DataOutputStream( new BufferedOutputStream( new FileOutputStream(fi) ) );
dos.writeBytes("hello, this is " + args[0] + "\n");
dos.writeDouble((double)3.1415);
dos.close(); //读
BufferedInputStream bis = new BufferedInputStream( new FileInputStream(args[0]));
DataInputStream in5 = new DataInputStream(bis);
BufferedReader in5_t = new BufferedReader(new InputStreamReader(bis));
System.out.println(in5_t.readLine());
System.out.println(in5.readDouble());
bis.close();
in5.close();
in5_t.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
class MyDataInputStream implements DataInput
{
private DataInputStream dis;
private BufferedReader br; public MyInputStream(DataInputStream dis)
{
this.dis = dis;
br = new BufferedReader(new InputStreamReader(new BufferedInputStream(dis)));
} @Override
public double readDouble() throws IOException
{
return dis.readDouble();
} @Override
public String readLine() throws IOException
{
return br.readLine();
}
//其他方法略
}
java core这本书里都是用这个类