Java学习之(1)简单文件操作

1、访问文件夹中的文件

最近在做一些与文件相关的工作,将目前遇到的简单的文件操作用到的相关知识记录如下:
查看目标文件中所有的文件:
如:目标文件夹在:E:\Myworks\source;想要查看source文件夹下的所有文件

String filePath = "E:\\Myworks\\source";
File file = new File(filePath);
File[] f = file.listFiles();

上面代码将遍历所有的文件,不管是文件夹还是文件都会若想要获取文件夹中的文件还是文件夹,于是想要获取目标文件中的文件则可加一个判断

for(File f1:f){
if(fi.isFile()){
System.out.println("文件名为:"+f1.getName());
}
}

这样就可获取文件夹路径下的所有文件名,如果想获取文件夹名,将判断中的isFile()方法换成isDirectory()就行。

2、修改文件名的问题
Java提供了修改文件名的方法renameTo()方法,这里应当注意的是,renameTo()方法在不同的操作系统文件格式之间是有冲突的,这个时候不能使用renameTo(),renameTo()的作用不仅可以修改文件名称,也可以修改文件路径,相当于是将目前的文件在一个新的完整路径下创建出来,那么我们可以继续上面的代码:

String filePath = "E:\\Myworks\\source";
File file = new File(filePath);
File[] f = file.listFiles();
for(File f1:f){
if(f1.isFile()){
    f1.renameTo(new File(filePath + "\\test\\"+f1.getName()))
}
}

以上代码就是将E:\Myworks\source路径下的所有文件存放到E:\Myworks\source\test文件夹下,这里我们需要注意:

1、renameTo方法是将文件创建到新的路径下
2、在本文件夹内修改名字,则直接可以在new File()内添加所想要修改的文件名
3、如果遇到只需要部分文件名情况下可以使用subString方法,如:f1.getName().subString(0,f1.getName().lastindexOf(“.”))则将扩展名前的名称获取

3、将文件复制粘贴到另一路径下
将文件从E:\Myworks\source路径复制粘贴到E:\Myworks\source\test路径下:

FileInputStream fis = FileInputStream("E:\\Myworks\\source");
FileOutputStream fos = FileOutputStream("E:\\Myworks\\source\\test");

byte[] buff = new byte[fis.available()];//创建一个缓存数组,将fis文件输入流存入该数组中
int len = 0;
while(len=(fis.read(buff)!=-1){
    fos.write(buff,0,len);
}
fis.close();
fos.close();

这段代码实现了文件复制的功能,这里需要注意的是:

创建缓存数组byte[]用以保存读取输入流中的信息fis.available()表示该输入流可读入的所有字节量
fis.read(buff)表示,读入一个字节数组buff,并返回实际读入的字节数。表达的意思是,若byte[] buff = new byte[1024];则输入流fis的1024字节被读出给buff数组,并返回1024赋值给len。简而言之,就是按照字节数组buff的方式读取输入流fis。
接下来fos.write(buff,0,len)这个函数的意思是,将buff数组中,0偏移量,len长度的字节数写入fos中。
顺便讲一下while中的含义,表示的意思是,若输入流中还有可读字节数,则继续执行。无可读的字节数则返回-1.

就简单总结在这里,刚刚从事JAVA工作尚有很多不足之处,一并在这里记录总结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值