学习笔记(三)(I/O)

1.创建一个文件对象
File f= new File(); java.io.File.File(String pathname)
File f= new File(); java.io.File.File(File parent, String child)
2.文件的常用方法
文件是否存在:f.exists()
是否是文件夹:f.isDirectory()
是否是文件:f.isFile()
文件的长度:f.length()
文件最后修改时间:long time=f.lastModified();
Date d= new Date(time);
设置文件修改时间:f.setLastModified(0);
文件重命名:f.renameTo();
++++++++
以字符串数组的形式,返回当前文件夹下的所有文件(不包括子文件及子文件夹)
f.list();
以文件数组的形式,返回当前文件夹下的所有文件(不包括子文件及子文件夹)
File fs[]= f.listFiles();
以字符串形式返回获取所在文件夹
f.getParent()
以文件形式返回获取所在文件夹
f.getParentFile()
创建文件夹,如果父文件夹skin不存在,创建就无效
f.mkdir();
创建文件夹,如果父文件夹skin不存在,就会创建父文件夹
f.mkdirs()
创建一个空文件之前,通常都会创建父目录
f.getParentFile().mkdirs()
列出所有的盘符c: d: e:
f.listRoots()
删除文件
f.delete()
JVM结束的时候,删除文件,常用于临时文件的删除
f.deleteOnExit()
3. .流的概念
流就是一系列的数据
在不同的介质之间有数据交互的时候,java就使用流来实现
数据源可以是文件,还可以是数据库,网络甚至是其他的程序
用于以字节的形式读取和写入数据
InputStream(字节输入流):用于将数据从硬盘的文件,读取到JVM(内存)
OutputStream(字节输出流):把数据从内存,输出到硬盘的文件上
4.以字节流的形式读取文件内容

public class TestInputStream {
	
	//以字节流的形式读取文件内容
	public static void main(String[] args) {
		
		try {
			File f= new File("d:/LOL.exe");
			FileInputStream fis=new FileInputStream(f);
			//创建字节数组,其长度就是文件的长度
			byte[] all= new byte[(int) f.length()];
			//以字节流的形式读取文件所有内容
				fis.read(all);
			
				for(byte b:all) {
					System.out.println(b);
				}
				fis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

5.以字节流的形式向文件写入数据

public class TestOutputStream {

	public static void main(String[] args) {
		try {
			File f= new File("d:/xyz/lol2.txt");
			byte data[]= {88,89};
			//创建基于文件的输出流
			FileOutputStream fos=new FileOutputStream(f);
			//把数据写入到输出流
			fos.write(data);
			//关闭输出流
			fos.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
	}
}

6.小练习

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class StreamTest {

	public static void main(String[] args) {
		try {
			File f= new File("d:/xyz/abc/def/lol.txt");
			File dir=f.getParentFile();
			if(!dir.exists()) {
				dir.mkdirs();
			}
			byte b[]= {88,89};
			FileOutputStream fos=new FileOutputStream(f);
			fos.write(b);
			fos.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
发布了16 篇原创文章 · 获赞 0 · 访问量 343

猜你喜欢

转载自blog.csdn.net/weixin_44242119/article/details/100708647