首页 > 代码库 > Java复习第四天---IO流
Java复习第四天---IO流
File类测试 //根据指定的文件名和路径创建File对象 File file = new File("myFile.txt"); //file.exists();检测文件是否存在 boolean exists = file.exists(); System.out.println(exists); //按照file对象指定的路径和文件名创建一个新的文件 file.createNewFile(); exists = file.exists(); System.out.println(exists); System.out.println("Path:"+file.getPath()); //返回文件或目录对应的绝对路径 System.out.println("Abs Path:"+file.getAbsolutePath()); System.out.println("Abs File:"+file.getAbsoluteFile()); /*File newFile = new File("myDir/newFile.txt"); //如果源文件和目标文件在同一个目录下,则将源文件改名为新文件 //如果源文件和目标文件不在同一个目录下,则将源文件移动至新的路径 //文件内容不受影响 file.renameTo(newFile);*/ long lastModified = file.lastModified(); System.out.println(new Date(lastModified)); System.out.println("length:"+file.length());// canWrite() System.out.println("W="+file.canWrite());// canRead() System.out.println("R="+file.canRead());// isFile() System.out.println("F="+file.isFile());// isDirectory() System.out.println("D="+file.isDirectory()); File delFile = new File("io.txt"); boolean delete = delFile.delete(); System.out.println("Del="+delete);InputStream测试 File fileIn = new File("myFile.txt"); //使用InputStream的实现类读取文件内容到内存中 //fileIn指向的文件必须存在 InputStream in = new FileInputStream(fileIn); //read()读取文件中当前位置的一个字节,如果当前位置已经是文件末尾,则返回-1 /*int read = in.read(); System.out.println((char)read); read = in.read(); System.out.println(read);*/ //循环读取文件中的全部内容 int read; while((read = in.read()) != -1){ System.out.print((char)read); } //IO流不在垃圾回收机制处理的范围之内,要显式关闭 in.close();OutputStreamx测试 File fileOut = new File("myFile.txt"); //将内存中的数据写入到文件中 //fileOut如果不存在,则创建一个新文件 OutputStream out = new FileOutputStream(fileOut); String data = http://www.mamicode.com/"aaaaaaaaaaaaaaaaaaaaaaaa";>
处理流之一:缓冲流:BufferedInputStream 和 BufferedOutputStream
BufferedReader 和 BufferedWriter
处理流之二:转换流:转换流提供了在字节流和字符流之间的转换
Java API提供了两个转换流:
InputStreamReader和OutputStreamWriter
字节流中的数据都是字符时,转成字符流操作更高效。处理流之三:对象流:
ObjectInputStream和OjbectOutputSteam
用于存储和读取基本数据类型数据或对象的处理流。它的强大之处就是可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。
序列化:用ObjectOutputStream类保存基本类型数据或对象的机制
反序列化:用ObjectInputStream类读取基本类型数据或对象的机制
ObjectOutputStream和ObjectInputStream不能序列化static和transient修饰的成员变量
RandomAccessFile类:RandomAccessFile 类支持 “随机访问” 的方式,程序可以直接跳到文件的任意地方来读、写文件
支持只访问文件的部分内容
可以向已存在的文件后追加内容
RandomAccessFile 对象包含一个记录指针,用以标示当前读写处的位置。RandomAccessFile 类对象可以自由移动记录指针:
long getFilePointer():获取文件记录指针的当前位置
void seek(long pos):将文件记录指针定位到 pos 位置
构造器
public RandomAccessFile(File file, String mode)
public RandomAccessFile(String name, String mode)
创建 RandomAccessFile 类实例需要指定一个 mode 参数,该参数指定 RandomAccessFile 的访问模式:
r: 以只读方式打开
rw:打开以便读取和写入
rwd:打开以便读取和写入;同步文件内容的更新
rws:打开以便读取和写入;同步文件内容和元数据的更新