2021年春招Java面试题,Java基础面试题(1)
FileInputStream fis = new FileInputStream(“d:\abc.txt”);
// 2 读取文件
// fis.read();
// 3 关闭
fis.close();
===============================================================
// 1 创建文件字节输出流
FileOutputStream fos = new FileOutputStream(“路径”, true);// true表示不覆盖 接着写
// 2 写入文件
fos.write(97);
fos.write(‘a’);
// 3 关闭
fos.close();
**字节缓冲流**
缓冲流:BufferedInputStream/ BufferedOutputStream
* 提高IO效率,减少访问磁盘次数
* 数据存储在缓冲区中,flush是将缓冲区的内容写入文件中,也可以直接close
// 1 创建BufferedInputStream
FileInputStream fis = new FileInputStream(“路径”);
BufferedInputStream bis = new BufferedInputStream(fis);
// 3 关闭
bis.close();
[白嫖资料](https://gitee.com/vip204888/java-p7)
### [](https://gitee.com/vip204888/java-p7)对象流
> ObjectOutputStream / ObjectInputStream
* 增强了缓冲区功能
* 增强了读写8种基本数据类型和字符串的功能
* 增强了读写对象的功能
readObject() 从流中读取一个对象
writeObject(Object obj) 向流中写入一个对象
#### [](https://gitee.com/vip204888/java-p7)使用流传输对象的过程称为序列化、反序列化
**序列化**
// 使用objectoutputStream实现序列化
psvm(String[] args){
// 1. 创建对象流
FileOutputStream fos = new FileOutputStream(“d:\st.bin”);
ObjectOutputSream oos = new objectOutputSream(fos);
// 2. 序列化(写入操作)
Student zhangsan = new Student(“zs”, 20);
oos.WriteObject(zhangsan);
// 3. 关闭
oos.close();
sout(“序列化完毕”);
}
反序列化
// 使用ObjectInputSteam实现反序列化(读取重构对象)
psvm(String[] args){
// 1. 创建对象流
FileInputStream fis = new FileInputStream(“d:\stu.bin”);
ObjectInputStream ois = new ObjectInputStream(fis);
// 2. 读取文件(反序列化)
Student s = (Student)ois.readObject();
// 3. 关闭
ois.close();
sout(“执行完毕”);
sout(s.toString());
}
**序列化注意事项**
[白嫖资料](https://gitee.com/vip204888/java-p7)
* 某个类要想序列化必须实现Serializable接口
* 序列化类中对象属性要求实现Serializable接口
* 序列化版本号ID,保证序列化的类和反序列化的类是同一个类
* 使用transient修饰属性,这个属性就不能序列化
* 静态属性不能序列化
* 序列化多个对象,可以借助集合来实现
#### [](https://gitee.com/vip204888/java-p7)**字符流**
// 传统字节流读取
psvm(String[] args){
// 1. 创建FileInputStream对象
FileInputSteam fis = new FileInputStream(“路径”);
// 2. 读取
int data = 0;
while((data = fis.read()) != -1){
sout((char)data);
}
// 3. 关闭
fis.close();
}
### [](https://gitee.com/vip204888/java-p7)字符缓冲流
[白嫖资料](https://gitee.com/vip204888/java-p7)
BufferedReader / BufferedWriter
高效读写、支持输入换行符、可一次写一行读一行
psvm(String[] args) throws Exception{
// 创建缓冲流
FileReader fr = new FileReader("…");
BufferedReader br = new BufferedReader(fr);
// 读取
// 1. 第一种方式
char[] buf = new char[1024];
int count = 0;
while((count = br.read(buf)) != -1){
sout(new String(buf, 0, count));
}
// 2. 第二种方式 一行一行读取
String line = null;
while((line = br.readLine()) != null){
sout(line);
}
// 关闭
br.close();
}
psvm(String[] args){
// 1. 创建BufferedWriter对象
FileWriter fw = new FileWriter("…");
BufferedWriter bw = new BufferedWriter(fw);
// 2. 写入
for(int i = 0; i < 10; i ++){
bw.write("写入的内容");
vw.newLine(); // 写入一个换行符
bw.flush();
}
// 3. 关闭
bw.close(); // 此时会自动关闭fw
}
**转换流**
桥转换流 `InputStreamReader / OutputStreamWriter`
可将字节流转换为字符流
可设置字符的编码方式
psvm(String[] args) throws Exception{
// 1 创建InputStreamReader对象
FileInputStream fis = new FisInputStream("…");
InputStreamReader isr = new InputStreamReader(fis, “utf-8”);
// 2 读取文件
int data = 0;
while((data = isr.read()) != -1){
sout((char)data);
}
// 3 关闭
isr.close();
}
psvm(String[] args) throws Exception{
// 1 创建OutputStreamReader对象
FileOutputStream fos = new FisOutputStream("..");
OutputStreamWRITER osw = new OutputStreamReader(fos, "utf-8");
// 2 写入
for(int i = 0; i < 10; i ++){
osw.write("写入内容");
osw.flush();
}
// 3 关闭
osw.close();
}
```
File类
```
/*
File类的使用
1. 分隔符
2. 文件操作
3. 文件夹操作
*/
public class Demo{
psvm(String[] args){
separator();
}
// 1. 分隔符
public static void separator(){
sout("路径分隔符" + File.pathSeparator);
### 最后
这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香,**[下载请点击这里](https://gitee.com/vip204888/java-p7)**)
![image](https://img-blog.csdnimg.cn/img_convert/4b49f0f0cf3b02f929e601a4eda2486f.png)
![image](https://img-blog.csdnimg.cn/img_convert/2fd1ddff191f42b7558689f081e76f1a.png)
psvm(String[] args){
separator();
}
// 1. 分隔符
public static void separator(){
sout("路径分隔符" + File.pathSeparator);
### 最后
这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香,**[下载请点击这里](https://gitee.com/vip204888/java-p7)**)
[外链图片转存中...(img-8ExaxvBX-1628214832565)]
[外链图片转存中...(img-NvnbGcVo-1628214832568)]