0. 字节流与二进制文件
主函数
package student;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class MainStream {
public static void main(String[] args)
{
String fileName="student.data";
//写入
try(DataOutputStream dos=new DataOutputStream(new FileOutputStream(fileName))){
Student stu1=new Student(50,"李",18,12);
dos.writeInt(stu1.getId());
dos.writeUTF(stu1.getName());
dos.writeInt(stu1.getAge());
dos.writeDouble(stu1.getGrade());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//读出
try(DataInputStream dis=new DataInputStream(new FileInputStream(fileName))){
int id=dis.readInt();
String name=dis.readUTF();
int age=dis.readInt();
double grade=dis.readDouble();
Student stu=new Student(id,name,age,grade);
System.out.println(stu);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行结果如下
1. 字符流与文本文件:使用 PrintWriter(写),BufferedReader(读)
1.使用BufferedReader从编码为UTF-8的文本文件中读出学生信息,并组装成对象然后输出。
package student;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String FILENAME="Students.txt";
try(BufferedReader br=new BufferedReader(new FileReader(new File(FILENAME))) ;)
{
String line=null;
while((line=br.readLine())!=null)
{
String []x=line.split("\\s+");
int id=Integer.parseInt(x[0]);
String name=x[1];
int age=Integer.parseInt(x[2]);
double grade=Double.parseDouble(x[3]);
Student stu=new Student(id,name,age,grade);
System.out.println(stu);
/*for(String e:x)
{
System.out.println(e);
}*/
}</