javaIO流2
JavaIO流2
缓冲流
提高读、写效率
原因:内部提供缓冲区
BufferedInputStream BufferedOutputStream 的使用
在 FileInputStream和 FileOutputStream的基础上微微改动
复制非文本文件
//造流
FileInputStream fis = new FileInputStream(comefile);
FileOutputStream fos = new FileOutputStream(gofile);
//造缓冲流
bis = new BufferedInputStream(fis);
bos = new BufferedOutputStream(fos);
byte[] buffer = new byte[10];
int len = bis.read(buffer);
while (len != -1){
bos.write(buffer,0,len);
}
//bos.flush:清空缓冲区
BufferedReader BufferedWriter 的使用
//复制文本文件
BufferedReader br = new BufferedReader(new FileReader(new File("文件名1")));
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("文件名2")))
//方式一:只用char[]数组
char[]cbuf = new char[1024];
int len = br.read(cbuf);
while (len != -1){
bw.write(cbuf,0,len);
bw.flush
}
//方式二:使用String
String date = br.readLine();//一行一行的读取
while(date != null){
bw.write(date+"\n")//输出一行date里不包括换行符
或是: bw.newline;
date = br.readLine();
}
转换流
字符流,字节流之间的转换
InputStreamRrader:将一个字节的输入流转化为字符的输入流
OutputStreamWriter:将一个字符的输出流转化为字节的输出流
InputStreamReader isr = null;
OutputStreamWriter osr = null;
try {
File comefile = new File("src\\hello");
File gofile = new File("src\\hello_gbk");
FileInputStream fis = new FileInputStream(comefile);
FileOutputStream fos = new FileOutputStream(gofile);
isr = new InputStreamReader(fis);//解码
osr = new OutputStreamWriter(fos,"gbk");//编码
char[] cubf = new char[20];
int len;
while((len = isr.read(cubf)) != -1){
osr.write(cubf,0,len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
}
try {
if(osr != null)
osr.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if(isr != null)
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
字符集
将x拼在一起就是二进制了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)