文件及文件格式、文件读取的简单认识

  1.文件的简单认识:“文件”,就是在我们的电脑中,以实现某种功能、或某个软件的部分功能为目的而定义的一个单位,就像图片,文本等。文件有很多种,运行的方式也各有不同。一般来说我们可以通过文件名来识别这个文件是哪种类型,特定的文件都会有特定的图标,也只有安装了相应的软件,才能正确显示这个文件的图标。 文件是指存储在外部介质上的数据的集合。 电脑中的文件可以是文档、程序、快捷方式和设备。文件是由文件名和图标组成,一种类型的文件具有相同的图标,文件名不能超过255个字符(包括空格)。 对文件的操作有:OPEN(打开)CLOSE(关闭)READ(读)WRITE(写)CREAT(创建)DELETE(删除)。
  2.文件格式的简单认识:文件格式是一种电脑计算机用语,是电脑对信息存储的编码方式,不同信息有不同存储格式。 比如图片,程序,文字信息等。每一类信息,都可以一种或多种文件格式保存在电脑存储中。每一种文件格式通常会有一种或多种扩展名可以用来识别,但也可能没有扩展名,扩展名并不是绝对必要的,只是它可以帮助应用程序识别的文件格式。 从程序的角度来看,文件是数据流,文件系统为每一种文件格式规定了访问的方法。 所有会出现需要打开的文件和打开程序不匹配出现乱码的情况,但并不能完全的说是文件不能被打开,只不过打开方式不对而已。
  3.文件读写的简单实现:文件的读写要用到IO体系输入输出流的概念,流就是字节序列的抽象概念,能被连续读取数据的数据源和能被连续写入数据的接收端就是流,通过流我们可以自由地控制文件、内存、IO设备等数据的流向。而IO流就是用于处理设备上的数据,如:硬盘、内存、键盘录入等。IO流根据流向的不同可分为输入流和输出流。要明确两者的方向:输入流将外部数据源的数据转换为流,程序通过读取该类流中的数据,完成对于外部数据源中数据的读入,输出流完成将流中的数据转换到对应的数据源中,程序通过向该类流中写入数据,完成将数据写入到对应的外部数据源中。在文件读写时分别要用到read和write方法。read方法是输入流类使用时最核心的方法,在实际读取流中的数据时,只能按照流中的数据存储顺序依次进行读取,在使用字节输入流时,读取数据的最小单位是字节(byte)。需要注意的是,read方法是阻塞方法,也就是如果流对象中无数据可以读取时,则read方法会阻止程序继续向下运行,一直到有数据可以读取为止。write方法是输出流中的核心方法,该方法实现将数据写入流中。在实际写入前,需要实现对应的格式,然后依次写入到流中。写入流的顺序就是实际数据输出的顺序。
文件读入的简单测试,注意几种read方法的区别
/**
* 输入流的简单测试
* @param fileName:文件名
* @return:读入的字符串
* @throws java.io.IOException
*/
public String readFileOne(String fileName) throws java.io.IOException{
InputStream ins=new FileInputStream(fileName);
int i=-1;
byte[] countByte=new byte[ins.available()];
//读取到第几个byte
int count=0;
//每次读取一个字节,若返回-1则表示读完了
while((i=ins.read())!=-1){
//将读到的一个byte数字放入数组中
countByte[count]=(byte)i;
count++;
}
//将byte数组转换为字符串
String s=new String(countByte);
// byte[] getBytes=new byte[50];
// int state=ins.read(getBytes);
// while(state!=-1){
// for(int i=0;i<getBytes.length;i++){
// System.out.print((char)getBytes[i]);
// }
// state=ins.read(getBytes);
// }
ins.close();
return s;
}

文件输出流的简单测试及文件复制的实现

/**
* 文件输入输出流的简单测试实现文件的复制
* @param srcName:原文件
* @param bakName:拷贝后的文件
* @return:复制是否成功的真假
* @throws IOException
*/
public boolean copyFile(String srcName,String bakName)throws IOException{
//创建从源文件来的输入流
InputStream ins=new FileInputStream(srcName);
//输出InputStream流对象,若文件中已有内容则覆盖原来的内容
OutputStream ous=new FileOutputStream(bakName);
int i=0;
//从输入流中读取一个字节
while((i=ins.read())!=-1){
//将这个字节写入到输出流
ous.write(i);
}
ins.close();
//清空输出流的缓存并关闭
ous.flush();
ous.close();
return true;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值