java文件操作

文件操作

很多实现操作都离不开文件的读取和写入的,所以这一部分必须掌握。

具体操作方法

创建文件对象

	File file=new File("path");

创建文件夹

	file.mkdirs()

判断文件是否存在

	file.exists()

判断是否为文件夹

	file.isDirectory()

创建文件

	file.createNewFile()

删除文件或文件夹

	file.delete()

获取文件夹下的所有文件对象

	file.listFiles()

获取文件夹下的所有文件名称

	file.list()

读取文件

	FileReader fr = new FileReader(str1);   
	BufferedReader br = new BufferedReader(fr);   
	String str2;
	while (str2 =br.readLine() != null) {}   

写入文件

	FileWriter fw = new FileWriter(str1);   
    fw.write(str2); 

文件属性

	System.out.println(f.getName() + "的属性如下: 文件长度为:" + f.length());   
    System.out.println(f.isFile() ? "是文件" : "不是文件");   
    System.out.println(f.isDirectory() ? "是目录" : "不是目录");   
    System.out.println(f.canRead() ? "可读取" : "不");   
    System.out.println(f.canWrite() ? "是隐藏文件" : "");   
    System.out.println("文件夹的最后修改日期为:" + new Date(f.lastModified()));  

获取路径

	file.getAbsoluteFile()	//file为文件
	file.getPath()	//file为文件夹

文件分割符

	File.separator		// ‘/’

文件I/O流

低效I/O(使用字符流)

写入操作

	FileWriter(String Filename, boolean append)  // 参数append 默认为false
	void write(String str);  
	void write(String str, int index, int len);
	void write(int ch);  // 注意,这是写一个字符, 如:write(97),则写入的为'a',如果想写数字,推荐使用第一个,如write("97")
	void write(char[] chs); 
	void write(char[] chs, int index, int len);

读取操作

	FileReader(String filename)
	int read()  // 一次读取一个字符 以ASCII存储 想要看到字符 做类型转换 (char)read()
	// 当返回值为-1时,说明没有数据了
	int read(char[] cbuf)  // 一次读取一个字符数组,返回的是实际读取到的字符的个数

高效I/O

写入操作:

	BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\bw.txt"));
	bw.write("高效O Demo");
	bw.write("换\r\n行");
	bw.flush();
	bw.close();
	特殊功能:
	void newLine() // 写一个换行符,具体是什么由系统决定, win(\r\n)   linux(\n)   mac(\r)

读取操作

	BufferedReader br = new BufferedReader(new FileReader("d:\\bw.txt"));
	char[] chs = new char[1024];
	int len;
	while((len=bw.read(chs))!=-1)
	{
		System.out..print(new String(chs,0,len));
	}
	bw.close();
	特殊功能:
	String readLine()  // 一次读取一行数据,但是不读取换行符。

使用字节流进行文件操作

	FileInputStream fis = new FileInputStream("这里是一个文件名");
	FileOutputStream fos = new FileOutputStream("另一个问件名");
		// 一次读一个字节
//		int by;
//		while((by = fis.read() ) !=-1){
//			fos.write(by);
//		}
	
	// 一次读取一个字符数组
	int len;
	byte[] bys = new byte[1024];
	while((len = fis.read(bys))!=1){
		fos.write(len);
	}
	
	fis.close();
	fos.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值