Java IO流——对文件的操作
来源:互联网 发布:usb网络共享电脑驱动xp 编辑:程序博客网 时间:2024/05/17 09:24
java.io.File类用于表示文件(目录)
File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问
package com.sample.io;import java.io.File;import java.io.IOException;/** * File类常用API */public class FileDemo { /** * @param args */ public static void main(String[] args) { //了解构造函数的情况 查帮助 File file = new File("E:\\javaio\\demo"); //判断目录是否存在 if(!file.exists()) file.mkdir(); //file.mkdirs() 创建多级目录 else file.delete(); //是否是一个目录 如果是目录返回true,如果不是目录or目录不存在返回的是false System.out.println(file.isDirectory()); //是否是一个文件 System.out.println(file.isFile()); //File file2 = new File("e:\\javaio\\日记1.txt"); File file2 = new File("e:\\javaio","日记1.txt"); if(!file2.exists()) try { // 创建文件 file2.createNewFile(); } catch (IOException e) { e.printStackTrace(); } else file2.delete(); //常用的File对象的API System.out.println(file);//file.toString()的内容,文件目录 System.out.println(file.getAbsolutePath()); System.out.println(file.getName()); System.out.println(file2.getName()); System.out.println(file.getParent()); System.out.println(file2.getParent()); System.out.println(file.getParentFile().getAbsolutePath()); }}
对文件的遍历操作
package com.sample.io;import java.io.File;import java.io.IOException;//列出File的一些常用操作比如过滤、遍历等操作public class FileUtils { /** * 列出指定目录下(包括其子目录)的所有文件 * @param dir * @throws IOException */ public static void listDirectory(File dir) throws IOException { if (! dir.exists()) { throw new IllegalArgumentException("目录:" + dir + "不存在"); } if (! dir.isDirectory()) { throw new IllegalArgumentException(dir + "不是目录"); } /* //list()方法用于列出当前目录下的子目录和文件 String[] fileNames = dir.list(); //返回的是字符串数组 不包含子目录下的内容 for (String string : fileNames) { System.out.println(dir + "\\" + string); } */ //listFiles()返回的是直接子目录(文件)的抽象 File[] files = dir.listFiles(); if (files != null && files.length > 0) { for (File file : files) { if (file.isDirectory()) { //递归 listDirectory(file); }else { System.out.println(file); } } } } //测试 public static void main(String[] args) throws IOException{ FileUtils.listDirectory(new File("src")); }}
RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。
RandomAccessFile支持随机访问文件,可以访问文件的任意位置
(1)java文件模型 在硬盘上的文件是byte byte byte存储的,是数据的集合(2)打开文件 有两种模式"rw"(读写) "r"(只读) RandomAccessFile raf = new RandomeAccessFile(file,"rw") 文件指针,打开文件时指针在开头 pointer = 0;(3) 写方法 raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入(4)读方法 int b = raf.read()--->读一个字节(5)文件读写完成以后一定要关闭(Oracle官方说明)
package com.sample.io;import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;import java.util.Arrays;public class RafDemo { public static void main(String[] args) throws IOException{ File demo = new File("demo"); if(!demo.exists()) demo.mkdir(); File file = new File(demo,"raf.dat"); if(!file.exists()) file.createNewFile(); RandomAccessFile raf = new RandomAccessFile(file, "rw"); //指针的位置 System.out.println(raf.getFilePointer()); // 0 raf.write('A');//只写了一个字节 System.out.println(raf.getFilePointer()); // 1 raf.write('B'); int i = 0x7fffffff; //用write方法每次只能写一个字节,如果要把i写进去就得写4次 raf.write(i >>> 24);//高8位 raf.write(i >>> 16); raf.write(i >>> 8); raf.write(i); System.out.println(raf.getFilePointer()); // 6 //可以直接写一个int (底层实现写了四次) raf.writeInt(i); String s = "中"; byte[] bytes = s.getBytes("UTF-8"); raf.write(bytes); System.out.println(raf.length()); //读文件,必须把指针移到头部 raf.seek(0); //一次性读取,把文件中的内容都读到字节数组中 byte[] buf = new byte[(int)raf.length()]; raf.read(buf); System.out.println(Arrays.toString(buf)); System.out.println(new String(buf)); raf.close(); }}
0 0
- Java IO流——对文件的操作
- java io 对文件操作的示例
- java io对文件的操作
- java io 对文件操作的示例
- java io流对文件的操作详解
- 浅谈 java中 IO流 对文件的操作
- io流对文件的操作
- Java文件操作——IO流
- java中IO对文件操作
- 通过IO文件流操作实现对文件的复制
- Java文件操作——IO流 RandomAccessFile基本操作
- Java IO流的文件操作例程
- 对一个文件的写入写出操作--IO流
- 有关对文件的操作(System.IO)
- java中IO操作 利用文件流 过滤流对文件进行读写操作
- Java IO流文件操作
- java中对IO的操作
- 对java io操作的再理解
- 2013计算机视觉代码合集
- V4L2(二)虚拟摄像头驱动vivi深入分析
- DLL与LIB库文件的生成和使用---C++
- ORA-00257 archive error、noarchivelog
- Ajax学习日记(1)
- Java IO流——对文件的操作
- Hermit插值曲线代码与显示效果
- Javascript中的事件处理程序
- mac下安装mysql
- Makefile详解-概述
- Flask MVVM 开发(vue.js) - ajax如何同步更新地址栏history 以及使用浏览器返回按钮
- Latex 常用符号
- Java集合之Vector、Stack
- 欢迎使用CSDN-markdown编辑器