java文件操作

文件操作

文件类(File):

构造方法:

​ File file=new File(“路径名”);

一些File类的方法:

boolean canRead()//是否可写
boolean canWrite()是否可读
boolean isFile()是否为文件
boolean isAbsolute()是否为绝对路径
String getAbsolutePath()获得绝对路径
String getName()获得文件名
String getPath()获得路径
String getParent()获得父目录
long lenth()返回文件字节长度。文件夹返回0
mkdir() //创建文件夹(必须父文件夹存在)
mkdirs()//创建多层文件夹(父文件夹可以不存在)

从流的内容分

  1. 字节流

    需要使用异常检测。

    FileInputStream(向外输出数据)

    可以使用一个byte数组来装载数据,使读取数据速度更快

    byte b[]=new byte [1024];

    int count=fis.read(b);返回值为byte数组的长度。如果没有数据,返回-1

    在 过程中可以使用flush()函数来数据流压入文件。

    FileInputStream fis=new FileInputStream(file);
    //括号中可以是File对象或是一个路径的字符串
    

    FileOutputStream(写入数据)

    使用方法和FileInputStream相似

    使用Java程序复制文件

    package try2;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Scanner;
    public class CopyFile {
    	public void copyf(File file,String path) {//输入文件对象和复制文件的目标路径
    		try {//异常捕获
    			FileInputStream fis=new FileInputStream(file);
    			File newfile=new File(path+file.getName());
    			FileOutputStream fos=new FileOutputStream(newfile);
    			byte b[]=new byte [1024];
    			int count=fis.read(b);
    			while(count!=-1) {
    				fos.write(b, 0, count);
    				fos.flush();
    				count=fis.read(b);
    			}
    			System.out.println("YES");
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	public static void main(String[] args) {//实现函数功能
    		Scanner s=new Scanner(System.in);
    		System.out.println("请输入待复制文件的绝对路径");
    		String file=s.next();
    		System.out.println("请输入复制的目的文件夹");
    		String path=s.next();
    		CopyFile c=new CopyFile();
    		c.copyf(new File(file), path);
    	}
    }
    
    
  2. 字符流

    使用方法和字节流的一样。只是读取方式是按字符来读取,一次读取一个字符。也可以使用char数组做运载,返回值是char数组的长度。数组为空时值为-1。

    FileReader

    FileWriter

    注意:

    FileWriter write=new FileWriter('文件名'true);//如果不加true这个参数,新写的内容会对原有内容覆盖。反之是在原有内容的基础上追加

    BuffferedWriter类和FileWriter类使用方法类似,但有一个特殊函数newLine()它会在写文件时自动换行。

    readLine()表示读取一行内容。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值