Java文件(io)编程——文件字节流的使用
2024-09-06 22:02:01
案例1:
演示FileInputStream类的使用(用FileInputStream的对象把文件读入到内存)
首先要在E盘新建一个文本文件,命名为test.txt,输入若干字符
public class Demo_2 { public static void main(String[] args) {
File f=new File("e:\\test.txt"); //得到一个文件对象f,指向e:\\test.txt
FileInputStream fis=null; try {
fis=new FileInputStream(f); //因为File没有读写的能力,所以需要使用FileInputStream byte []bytes=new byte[1024]; //定义一个字节数组,相当于缓存
int n=0; //得到实际读取到的字节数 while((n=fis.read(bytes))!=-1){ //循环读取
String s=new String(bytes,0,n); //把字节转成String(只转0到n位)
System.out.println(s);
} } catch (Exception e) {
e.printStackTrace();
}finally{ //关闭文件流必须放在这里
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
运行程序,控制台输出test.txt中输入的字符。
案例2:
演示FileOutputStream的使用(把输入的字符串保存到文件中)
public class Demo_3 { public static void main(String[] args) { File f=new File("e:\\ss.txt");
FileOutputStream fos=null; //字节输出流 try {
fos=new FileOutputStream(f); String s="你好,疯子!\r\n"; //\r\n为了实现换行保存
String s2="24个比利"; fos.write(s.getBytes());
fos.write(s2.getBytes());
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
打开E盘名为ss.txt的文本文档,存在输入的字符。
案例3:图片拷贝
首先在E盘准备一张图片,命名为a.jpg
public class Demo_4 { public static void main(String[] args) {
//思路 先把图片读入到内存,再写入到某个文件
//因为图片是二进制文件,只能用字节流完成 FileInputStream fis=null; //输入流 FileOutputStream fos=null; //输出流
try {
fis=new FileInputStream("e:\\a.jpg");
fos=new FileOutputStream("d:\\a.jpg"); byte []bytes=new byte[1024];
int n=0; //记录实际读取到的字节数
while((n=fis.read(bytes))!=-1){ //read函数返回读入缓冲区的字节总数
fos.write(bytes); //输出到指定文件
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
fis.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
打开D盘,点击a.jpg,图片正常显示即运行成功。
最新文章
- SQL Server-聚焦过滤索引提高查询性能(十)
- 为什么print在python3中变成了函数?
- JQuery筛选器全系列介绍
- 数据库大作业--由python+flask
- Excel 2013中单元格添加下拉列表的方法
- 主题:Android、iPhone和Java三个平台一致的加密工具
- ahjesus约束方法或属性的调用方
- EFI
- 写sql语句分别按日,星期,月,季度,年统计
- 【译】Android系统简介—— Activity
- input 데이터의 자판입력모드의 한글/영문 자동전환, 영문고정 하는 방법 웹프로그래밍 팁
- VS2012 ActiveX控件_D接口添加方法事项
- LIB文件和DLL文件的作用
- ASP.NET WebApi 入门
- 序列化为XML
- Discuz搜索改为指向帖子
- 五十一、进程间通信——System V IPC 之进程信号量
- RSA加密、解密、签名、验签的原理及方法
- DevExpress 折线图和柱状图的绘制与数据绑定
- 【Spark深入学习 -15】Spark Streaming前奏-Kafka初体验