File类与字节流
Posted $joke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了File类与字节流相关的知识,希望对你有一定的参考价值。
1.File类
1.1:表达式:File f = new File("文件路径")
1.2:需导入的包: java.io.File 1.3:File表示文件或文件夹(目录),不能操作文件类容,只能操作文件的属性
1.4:File常用的方法:
boolean flag = f.exists(); //文件是否存在
flag = f.isFile(); //是否是文件
flag = f.isDirextory(); //是否是目录
str = f.getPath(); //获得文件的相对路径
str = f.getAbsolutePath(); //获取文件的绝对路径
str = f.getName(); //获取文件的目录或名称
flag = f.delete(); //删除文件或目录
flag = f.createNewFile(); //创建文件
long = f.length(); // 返回文件长度 注意flag不能操作文件内容
示例:
File file=new File("D:\\Test\\hello.txt");
if(file.exists()){ //判断是否有文件或文件夹存在
if(file.isFile()){ //如果是文件
System.out.println("名称:"+file.getName());
System.out.println("相对路径:"+file.getPath());
System.out.println("绝对路径:"+file.getAbsolutePath());
System.out.println("文件大小为:"+file.length()); }
if(file.isDirectory()){ System.out.println("此文件为目录或文件夹!");
}else{
System.out.println("文件不存在!"); }
}
1.5:相对路径:非web项目的相对都是以项目为起点。(src/a/txt(建议))
绝对路径:f:/bin/a.txt(以盘符开头)
2.流
2.1:流:值一连串流动的字符,(字符:本质是一种电波"0、1") 2
.2:分类: 输入流:只能从文件中读取数据到JAVA中来,不能在java中写数据文件到文件中。
输出流:只能在java中写数据文件到文件中
2.字节流
2.1:字节输入流(InputStream):
2.1.1: 常用方法(数据从文件到java代码中)
int read(); //读取一个字节
int read(byte[]); //读取一串字节
long avaliable; //文件长度
2.1.2: FileInptstream(字节文件输入流,是InputStream的子类)
new FileInptstream(File)
new FileInptstream("文件路径+文件名")
2.1.3:示例:
//声明流对象
FileInputStream fis=null;
try { fis =new FileInputStream("D:\\Test\\hello.txt");
int data; System.out.println("文件内容为:"); //循环读取数据
while((data=fis.read())!=-1){
System.out.print((char)data+"");
}
}catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if(fis!=null){
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace(); }
}
}
2.2:字节输出流(OutPutStream):
2.2.1: 常用方法:(数据从java代码中,写到文件或其他介质中)
void write (字节);//写入一个字节
void write(byte[]); //写入字节数组
2.2.2: FileOutputStream(字节文件输出流,是OutputStream的子类)
new FileOutputStream(file)
new FileOutputStream("文件路径+文件名")
new FileOutputStream("文件路径+文件名",boolean)
注意:a.boolean:表示是否向文件末尾追加,如果是true,表示追加,false表示不追加(也就是覆盖),默认值为false
b.创建FileOutputStream实咧时,如果相应的文件并不存在,则会自动创建一个空的文件。
补充:(递归算法)
// File file=new File("D:\\Test");
// showInfo(file);
//非菠萝契数列:1 1 2 3 5 8 ......
//int [] muns=new int[10]; //定义数组
Scanner input=new Scanner(System.in);
System.out.println("请输入您要计算的位置:");
int a=input.nextInt();
System.out.println(suan(a-1));
}
private static void showInfo(File f){
File [] file=f.listFiles();
for(int i=0;i<file.length;i++){
System.out.println(file[i].getName()); //得到一级目录中的文件和文件夹
if(file[i].isDirectory()){ //判断一级目录中是否含有文件夹
showInfo(file[i]);//调用自己方法 }
}
}
private static int suan(int i){
if(i==0 || i==1){
return i=1; }else{
return suan(i-2)+suan(i-1);
}
以上是关于File类与字节流的主要内容,如果未能解决你的问题,请参考以下文章