什么是流:流是用于隐藏数据传输细节的操作模型,是数据传输的抽象表达。
File类:
用于封装文件或者目录,提供一些获取相关属性的方法
创建一个名为out的文件夹:
File file = new File("out/");
if(!file.exists())
file.mkdirs();//mkdirs()用于创建文件
方法: File f1=new File("data/dd.txt");//相对路径????? File f2=new File("dd:bb.txt");//绝对路径 f1.length():long 获取某个文件的大小 ff.getAbsolutePath() 获取指定文件或者文件夹对应的绝对路径 .isDirectory() 用于判断当前文件对象是否为文件夹 .isFile() 用于判断当前文件对象是否为文件 .exists():boolean 用于判断当前文件对象指代的文件或者文件夹是否存在,如果存在则true,否则false ?delete():boolean 用于执行当前文件或者文件夹删除,如果对象是文件夹,则自动删除文件夹,如果对象是文件,删除返回 mkdir()用于执行文件夹的创建,如果文件夹已经存在则直接重用,如果不存在则创建一级文件夹 ?File[] fs=ff.listRoots();用于获取当前系统所支持的所有根路径 ?ff.list();:string 获取指定文件夹下的所有子文件夹或者子文件 ?ff.listFile():File[] 获取指定文件夹下的所有子文件或者子文件夹所构成的File数组
流的分类:
根据流的方向分为输入流和输出流
根据传输单位分为字节流和字符流
根据功能范围分为节点流和过滤流
字节流:
InputStream和OutputStream,都实现了Closeable接口
InputStream操作用于实现数据的读取操作
read():表示只读取一个字节,0-255之间,-1表示流结束
read(char[]): 返回的是一次读取的字节数
close(): 关闭流
OutputStream操作方法用于实现数据的写出操作
write(int):写出一个字节
write(byte[],具体数据,int启示下标,int长度)
close():关闭流
实现文件的拷贝操作:
public static void main(String[] args) throws Exception{
try (
InputStream is = new FileInputStream("d:/a.txt");
OutputStream os = new FileOutputStream("d:/b.txt");) {
// 从输入流中读取数据
int bb=is.read();
while(bb!=-1) {
// 向输出流中写出数据
os.write(bb);
bb=is.read();
}
}
}
字符流:
Reader和Writer
? 输入流Reader ? read():读取下一个字符数据,返回值0-65535,如果流结束则返回-1 ? read(char[]):读取最多数组最大长度个字符到字符数组中,返回读取的字符个数;流结束则返回-1 ? close(): 关闭输入流
? 输出流Writer ??? write(int): 写出一个字符,自动抛弃int的高16位 ??? write(char[],int offset,int len)将char数组中从offset下标位置开始,总共len个字符写出到输入流 ??? close(): 关闭输出流
读取a.txt文件中的内容,在控制台打印输出,并写入out.txt文件中:
public static void main(String[] args) {
try (Reader r = new FileReader("a.txt"); Writer w = new FileWriter("out.txt")) {
int cc = 0;
while ((cc = r.read()) != -1) {
System.out.print((char) cc);
w.write(cc);
}
} catch (Exception e) {
e.printStackTrace();
}
}
|