Java学习——字节流操作文件
2023-12-29 20:09:56
系列文章目录
这里是Java学习系列课程,点击进入http://t.csdnimg.cn/Xtkz9
欢迎大家一起来学习!
目录
一、字节流是什么?
字节流是一种数据传输的方法,以字节为单位进行数据的读取。通常用来处理二进制文件,比如音频、图片等。
字节流有两个抽象基类,InputStream和OutputStream,分别处理字节流的输入与输出。所有字节输入流都继承InputStream类,所有的字节输出流都继承OutputStream类。
二、字节流操作文件
1.利用输入流从文件中读取信息
实现步骤如下:
(1)创建文件输入流对象 f;
(2)创建临时存放数据的byte类型数组 b;
(3)利用f.read(b)读出信息;
(4)关闭文件
代码实现如下:?
import java.io.FileInputStream;
import java.io.IOException;
//利用字节流的输入流读取文件read中的信息
//读取文件一共三步,1,创建文件输入流对象;2、创建临时存放数据的byte数组;3、利用f.read(b)读出信息;4、关闭文件
public class TestFileInputStream {
public static void main(String[] args) {
FileInputStream f=null;
try{
//创建文件输入流对象
f=new FileInputStream("read.txt");
int n=512;
int len=0;
//创建一个临时存放数据的数组
byte b[]=new byte[n];
/*
该方法会输出无效字符,长度为n
while((f.read(b,0,n)!=-1)&&(n>0)){
System.out.println(new String(b));
}*/
while((len=f.read(b))!=-1)
{
System.out.println(new String(b,0,len));
}
//利用流对象f的读取方法将流中数据读入数组b中
}
catch (Exception e)
{
System.out.println(e);
}
finally {
try{
f.close();
}catch (IOException e)
{
e.printStackTrace();
}
}
}
}
2.利用输出流将数据写入文件
实现步骤如下:
(1)创建文件输出流对象 f;
(2)创建临时存放数据的byte类型数组 b;
(3)利用System.in.read(b),从终端读入数据到b中
(4)利用f.write(b)读出信息;
(5)关闭文件
代码如下(示例):
import java.io.FileOutputStream;
import java.io.IOException;
//利用输出流将信息写入文件read.txt中
public class TestFileOutputStream {
public static void main(String[] args) throws IOException {
System.out.println("输入要保存的文件:");
int count,n=512;
byte b[]=new byte[n];
count=System.in.read(b);
FileOutputStream f=new FileOutputStream("read.txt",true);
f.write(b,0,count);
System.out.println("已经保存到read.txt");
f.close();
}
}
3.实现文件复制
实现步骤如下:
(1)创建文件输入流对象 f;
(2)创建文件输出流对象e;
(3)创建临时存放数据的byte类型数组 b;
(4)利用,f.read(b)从文件read.txt中读入数据到b中
(5)利用f.write(b)将b中数据写入到read1.txt文件中;
(6)关闭文件
代码实现如下:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Copy {
public static void main(String[] args) {
try{
FileInputStream f=new FileInputStream("read.txt");//创建输入流,读文件
FileOutputStream e=new FileOutputStream("read2.txt",true);//创建输出流,写文件
byte b[]=new byte[512];
int len=0;
while((len=f.read(b))!=-1)//将读到的信息存放在b 中
{
System.out.println(new String(b,0,len));
//将b中的信息写入到e中
e.write(b,0,len);
System.out.println("复制成功!");
//参数1是写的缓冲数组,参数2是从数组的那个位置开始,参数3是获取的数组的总长度;
}
f.close();
e.close();
}
catch (Exception e)
{
System.out.println(e);
}
}
}
?
总结
以上就是今天分享的内容,本文仅仅详细介绍了字节流对文件的操作。
文章来源:https://blog.csdn.net/m0_71233415/article/details/135295204
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!