带缓冲区的流对象、写入基本数据类型、实现命令行中的copy命令 (二)

2014-11-24 11:54:47 · 作者: · 浏览: 48
FileOutputStream(args[0])); //向文件中写入

// 使用增强for循环写入数据
for(Student st : sd)
{
dos.writeUTF(st.getName()); // 写入String
dos.writeInt(st.getScore());
}

dos.flush(); // 刷新缓冲区
dos.close(); // 关闭流

// 从文件中读入数据
DataInputStream dis = new DataInputStream(new FileInputStream(args[0]));

for(int i = 0 ; i < 3 ; ++i)
{
System.out.println(dis.readUTF()); // 取入String字符串,不必担心长度的问题
System.out.println(dis.readInt());
}

dis.close();
}
}

package cls;

import java.io.*;

class Student
{
String name;
int score;

// 构造方法
public Student(String name,int score)
{
this.name = name;
this.score = score;
}

// 返回名字
public String getName()
{
return name;
}
// 返回分数
public int getScore()
{
return score;
}
}

public class DataStreamDemo
{
public static void main(String[] args) throws Exception
{
// 创建3个Student对象
Student[] sd = new Student[]{new Student("dog",100),new Student("pig",200),new Student("cat",300)};

// 创建输出流对象
DataOutputStream dos = new DataOutputStream(new FileOutputStream(args[0])); //向文件中写入

// 使用增强for循环写入数据
for(Student st : sd)
{
dos.writeUTF(st.getName()); // 写入String
dos.writeInt(st.getScore());
}

dos.flush(); // 刷新缓冲区
dos.close(); // 关闭流

// 从文件中读入数据
DataInputStream dis = new DataInputStream(new FileInputStream(args[0]));

for(int i = 0 ; i < 3 ; ++i)
{
System.out.println(dis.readUTF()); // 取入String字符串,不必担心长度的问题
System.out.println(dis.readInt());
}

dis.close();
}
}