package com.hrf.io;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
public class IOTest {
// 文件流
public static void main(String[] args) {
// 1.传统方法 创建字节输入流
InputStream inputStream = null;
try {
// 读取文件
inputStream = new FileInputStream("d:/hrf/demo1.txt");
// 临时变量
int temp = 0;
// 读取内容
while((temp = inputStream.read()) > 0) {
System.out.print((char)temp);
}
} catch (Exception e) {
// TODO: handle exception
}finally {
if(inputStream != null) {
try {
// 关闭
inputStream.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
// 一个字符是两个字节,一个中文正好是一个字符
// 2.一般写法新的编程方式 创建字节输入流,读取文件
try(InputStream inputStream1 = new FileInputStream("d:/hrf/demo2.txt")) {
// 临时变量
int temp = 0;
// 读取内容
while((temp = inputStream1.read()) > 0) {
System.out.print((char)temp);
}
} catch (Exception e) {
e.printStackTrace();
}
// 3.一般写法新的编程方式 创建字节输入/输出流
try(OutputStream outputStream = new FileOutputStream("d:/hrf/demo3.txt");
InputStream inputStream2 = new FileInputStream("d:/hrf/demo2.txt")) {
// 完成复制,临时变量
int temp = 0;
// 读取内容
while((temp = inputStream2.read()) > 0) {
outputStream.write(temp);
System.out.print((char)temp);
}
// 推荐显示的编写flush方法
outputStream.flush();
System.out.println("=====");
} catch (Exception e) {
e.printStackTrace();
}
// 4.一般写法新的编程方式 创建的字符的输入流,不会出现中文乱码的问题了
try(Reader reader = new FileReader("d:/hrf/demo2.txt")) {
// 临时变量
int temp = 0;
// 读取内容
while((temp = reader.read()) > 0) {
System.out.print((char)temp);
}
} catch (Exception e) {
e.printStackTrace();
}
// 5.一般写法新的编程方式 创建字符输入/输出流
try(Reader reader = new FileReader("d:/hrf/demo2.txt");
Writer writer = new FileWriter("d:/hrf/demo4.txt")) {
// 完成复制,临时变量
int temp = 0;
// 读取内容
while((temp = reader.read()) > 0) {
writer.write(temp);
}
// 推荐显示的编写flush方法
writer.flush();
System.out.println("=====");
} catch (Exception e) {
e.printStackTrace();
}
// 6.一般写法新的编程方式 创建字节输出流Writer writer = new FileWriter("d:/hrf/demo4.txt",true是对文件内容追加)默认是false会对文件内容覆盖
try(Writer writer = new FileWriter("d:/hrf/demo4.txt",true)) {
writer.write("学习技术");
writer.flush();
System.out.println("=====");
} catch (Exception e) {
e.printStackTrace();
}
}
}
文件流的练习
最新推荐文章于 2023-08-25 10:46:36 发布