package IO流_其他流_基本数据类型处理流;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
- 二.处理流:处理基本数据类型+字符串(String);保留数据+类型
-
1.输入流: DataInputSteeam ;主要:readXxx
-
2.输出流:DataOutputStream ;主要:WriteXxx
*注意:
-
1.新增方法不能使用多态
-
2.java.io.EOFException 这个异常要认识:表示已达到文件的末尾即没有读取到文件相关的内容
-
3.当读取顺序不一致 可能存在数据问题
*/
public class DataDemo01 {
public static void main(String[] args) throws IOException {
//写入测试
//write("e:/xp/test/arr.txt");//处理异常;打开文件乱码;注意:这是给计算机读的
//输出
read("e:/xp/test/arr.txt");
}
/**
* 数据+类型输出到文件
* @throws IOException
*/
public static void write(String destPath) throws IOException{
double point = 2.5;
long num = 100L;
String str = "数据类型";
//输出到指定文件
//1.创建源 在Write()中加入类型
File dest = new File(destPath);
//选择流
DataOutputStream dos = new DataOutputStream(//DataOutputStream数据输出流;
new BufferedOutputStream(//放入OutputStream的子类;BufferedOutputStream缓冲输出流
new FileOutputStream(dest))); //FileOutputStream文件输出流;处理异常
//操作 :依次写出;注意写出顺序;读取顺序必须与写出顺序一致
dos.writeDouble(point);//write写;处理异常
dos.writeLong(num);
dos.writeUTF(str);//UTF转换格式(UCS Transformation Format)
//关闭
dos.flush();
dos.close();
}
/**
* 从文件中读取数据+类型;注意:只能是基本数据类型+字符串
* @throws IOException
*/
public static void read(String destPath) throws IOException{//加入文件路径
//创建源
File src = new File(destPath);
//选择流:数据类型的输入流
DataInputStream dis = new DataInputStream(
new BufferedInputStream(
new FileInputStream(src))) ;//处理异常
//操作;注意:读取的顺序必须与写出的一致且必须存在,才能读取
double num1 = dis.readDouble();
long num2 = dis.readLong();
String num3 = dis.readUTF();
System.out.println(num1 );
System.out.println(num2);
System.out.println(num3);
}
}
//结果------------------------------------------
2.5
100
数据类型