Java入门总结第六天
1. Io操作
读取文件
import java.io.FileInputStream;
public class FirstDemo{
/**
java 文件读写
按流向划分 输入流(读取) 输出流(写操作)
按单位划分 字节流(可以读写文本、图像、音频、视频) 字符流(文本)
*/
//入口方法
public static void main(String[]args)throws Exception{
//将桌面上的一个文件中的内容读取到计算机内存中
//1.找到文件路径
String path="C:\\Users\\Administrator\\Desktop\\个人总结\\试听第六天\\test.txt";
//2.通过文件路径创建一个输入流对象
//path代表要打开的文件路径
FileInputStream input =new FileInputStream(path);
//3.读取数据到计算机内存 以字节为单位
//int len=input.read();//每次读取一个字节
//System.out.println(len);
//初始化一个字节数组,作为存储数据的缓冲区
byte[]buf=new byte[10];
int len=-1;//每次读取的字节数 如果返回-1表示结束
while((len=input.read(buf))!=-1){
//对读取数据进行操作
System.out.print(new String(buf,0,len));
}
//4.关闭流
input.close();
}
}
输出结果
写文件
import java.io.*;
public class SecondDemo{
public static void main(String[]args)throws Exception{
/**
将内存中的数据写入到一个指定的文件中
*/
//1.创建一个写入的目的文件
String name="test1.txt";
//2.创建一个文件输出对象 打开文件流
FileOutputStream out=new FileOutputStream(name);
//3.写操作 从内存中 流数据到文件中
String str="浪子一秋";
//str 转换为一个字节数组
byte[]b=str.getBytes();
out.write(b);//将b数组中所有数据写入到流中
//out.write(b,offse,len);//从数组中指定位置写入长度
//强制刷入流中
out.flush();
//4.关闭流
out.close();
}
}
输出结果
文件夹中生成test.txt
练习题
从一个文件夹中copy一个文件到另一个文件夹中
import java.io.*;
public class Test{
public static void main(String []args)throws Exception{
//1.找到文件路径
String path="C:\\Users\\Administrator\\Desktop\\test.txt";
//2.通过文件路径创建一个输入流对象
//path代表要打开的文件路径
FileInputStream input =new FileInputStream(path);
//3.读取数据到计算机内存 以字节为单位
//初始化一个字节数组,作为存储数据的缓冲区
byte[]buf=new byte[10];
int len=-1;//每次读取的字节数 如果返回-1表示结束
//4.创建一个写入的目的文件
String name="Test.txt";
//5.创建一个文件输出对象 打开文件流
FileOutputStream out=new FileOutputStream(name);
//6.写操作 从内存中 流数据到文件中
while((len=input.read(buf))!=-1){
//对读取数据进行操作
String str=new String(buf,0,len);
//str 转换为一个字节数组
byte[]b=str.getBytes();
out.write(b);
//强制刷入流中
out.flush();
}
//7.关闭流
input.close();
out.close();
}
}
输出结果
此时的文件已被复制粘贴
2.序列化操作
import java.io.*;
import java.util.*;
public class ThirdDemo{
public static void save()throws Exception{
//对象序列化操作==将对象放到一个指定的文件中
//1.初始化一个ArrayList对象
ArrayList<String>list=new ArrayList<>();
//2.存放数据
list.add("qq");
//3.将数据写到指定文件中
//初始化一个输出流对象 指定文件路径名称
FileOutputStream out=new FileOutputStream("data");
//初始化一个文件输出的对象,并关联输出流
ObjectOutputStream objOut=new ObjectOutputStream(out);
//将对象序列化
objOut.writeObject(list);
//关闭流
objOut.close();
out.close();
}
public static void read()throws Exception{
//初始化一个输入流对象 指定文件路径名称
FileInputStream input=new FileInputStream("data");
//初始化一个文件输入的对象,并关联输出流
ObjectInputStream in=new ObjectInputStream(input);
//读取数据,还原对象
//ArrayList<String>list=(ArrayList<String>)in.readObject();
Object obj=in.readObject();
//查看数据
System.out.println(obj);
//关闭流
input.close();
in.close();
}
//入口方法
public static void main(String []args)throws Exception{
//调用对象序列化
save();
//对象反序列化
read();
}
}
输出结果
3.知识框架