您的位置:首页 > 编程语言 > Java开发

Java文件(io)编程——文件字节流的使用

2017-08-10 21:14 357 查看
案例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,图片正常显示即运行成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: