java io流与文件操作
Posted Deemo_hans
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java io流与文件操作相关的知识,希望对你有一定的参考价值。
Java的文件操作
File类位于java.io包中
我们可以使用File操作文件
首先创建对象
File file=new File("路径")//关联文件
创建文件:file.createNewFile()//首先这里会抛异常需要try...catch处理,其次如果有同名文件则不会创建.
创建文件夹:file.mkdir文件操作
File类位于java.io包中
我们可以使用File操作文件
首先创建对象
File file=new File("路径")//关联文件
创建文件:file.createNewFile()//首先这里会抛异常需要try...catch处理,其次如果有同名文件则不会创建.
创建文件夹:file.mkdir()
使用以上两个命令的时候
我们可以使用file.exists()来判断这个文件或者文件夹存不存在
例:if(file.exists())
{sout(文件已存在)}
else
{file.createNewFile()}//创建文件或文件夹file.madir()
我们可以用一些命令来获取我们一开始所关联的文件信息
file.getname()//获取文件名
file.length()//获取文件大小
file.getPath()//获取文件路径
我们还可以使用file.isFile()判断是不是文件
使用file.isDirectory()判断是不是文件夹
例:if(file.isfile())
{sout(这是一个文件)
else{sout(这不是一个文件)}
对于隐藏的文件,由于不管是否隐藏JAVA都能读取出来
因此我们可以使用file.isHidden()来检查文件是否隐藏
文件的最后修改时间
可以使用file.lastModified()查询,但是是毫秒
使用new date(file.lastModfied)转换成格林威治时间
展示一个文件夹内所有的文件
使用file.listFiles()可以获取所有的文件,
由于他的返回值是数组,因此我们需要创建一个数组来接收
并使用for循环(foreach)遍历即可
配合前面的功能我们可以展现一个较完整的文件属性界面
最后我们需要使用file.close()关闭文件.//不关闭除了消耗资源外没有影响
iostream的部分
我们可以按流向和数据处理区分
按流向区分
首先分清楚输入与输出的关系.他的参照物是java本身
输出流(java向其他文件输入)
输入流(java向其他文件读取,也就是向java输入)
按流向区分的命令:
输出流:outputStream和writer是基类
输入流:inputStream和reader是基类
按处理方式区分:
字节流:outputStream,inputStream
字符流:writer,reader
接下来我们使用流对文件进行操作
二进制的字节流读写操作使用
FileinputStream文件输入流
使用步骤
1,创建对象:FileOutStream fos=new FileOutStream("路径")//此方法是每次打开都清空内容重写,如果是追加写入需要在路径后加逗号true.
注意:这里会报错需要写try...catch并且操作需要在try中完成,因为作用域在try中
2写入:
使用fos.write(内容)进行字节写入//单字节且无法实用汉字
多字节写入:
要写入的内容:String str="hello,world"
创建数组:Byte bs[]=str.getBytes()
fos.write(bs)
3关闭文件:fos.close()
fileOutStream文件输出流
用来读取文件
1,创建对象(略) fis
2一次读取一个文件:int math=fis.read()//注意:1,文件的第一个是汉字无法读取出汉字,2read()部分会抛出异常由于之前已经有try..catch所以这里加catch就可以了
3关闭文件
但是我们肯定是需要一次性读取多个文件
首先:将文件转化成字符数组
Byte bs[]=new Byte[fis.available()]//其中数组长度就是我们需要读取的字节长度.fis.available()是获取的文件长度,这样来保证完整的读取所有文件
然后使用fis.read(bs)读取字节文件
最后用String str=toString(bs)将字节数组转化为字符串
用sout(输出即可);
最有关于文件的复制.
一边读取以便输入即可
以上是关于java io流与文件操作的主要内容,如果未能解决你的问题,请参考以下文章