[javaSE] IO流(RandomAccessFile)

随机访问文件,可以看作一个大型的byte[]数组,不算是IO体系中的一员,内部封装了字节输入输出流,可以设置权限,可以调整指针的位置

获取RandomAccessFile对象,构造参数:String文件名称,String的文件模式

调用RandomAccessFile对象的write()方法,参数:byte[]数组

获取RandomAccessFile对象,构造参数:String文件名称,String的文件模式

调用RandomAccessFile对象的seek()方法,调整指针位置,参数:int的索引位置

调用RandomAccessFile对象的skipBytes()方法,可以跳过指定索引,参数:int索引位置

多线程下载的原理就是使用这个类

import java.io.RandomAccessFile;

public class RandomAccessFileDemo {

    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        //写入
        RandomAccessFile raf=new RandomAccessFile("test2.txt", "rw");
        raf.write("陶士涵李小明".getBytes());
        raf.close();
        //读取
        readFile();
    }
    public static void readFile() throws Exception{
        RandomAccessFile raf=new RandomAccessFile("test2.txt", "rw");
        raf.seek(6);//调整指针位置
        byte[] b=new byte[1024];
        int len=raf.read(b);
        raf.close();
        System.out.println(new String(b,0,len));//输出  李小明
    }
}
时间: 2024-10-10 05:22:02

[javaSE] IO流(RandomAccessFile)的相关文章

JavaSE IO流学习总结

IO流 io流分为字节流和字符流 字节流:输入流父类 InputStream 常用的子类有 FileInputStream BufferedInputStream ? 输出流父类OutputStream 常用的子类有 FileOutputStream BfferedOutputStream 字符流:输入流父类 Reader 常用的子类有BufferedReader InputStreamReader ? 输出流父类 Writer 常用的子类有BufferedWriter OutputStream

[javaSE] IO流(对象序列化)

写入 获取ObjectOutputStream对象,new出来,构造参数:FileOutputStream对象目标文件 调用ObjectOutputStream对象的writeObject()方法,参数:要保存的对象 调用ObjectOutputStream对象的close()方法,关闭流 此时会报异常,NotSerialzeableException,是因为目标类没有实现Serializable接口,这个接口没有方法,称为标记接口,会在改变类之后,生成新的序列号,保存的文件读取时会显示错误信息

IO流 RandomAccessFile

package com.yyq; import java.io.*; /* * RandomAccessFile * 该类不算是IO体系中的子类 * 而是直接继承自Object * 但是他是Io包中的成员,因为它具备读和写的功能 * 内部封装了一个数组,而且通过指针对数组的元素进行操作 * 可以通过getFilePointer获取指针位置 * 同时可以通过seek改变指针的位置 * * 其实完成读写的原理就是内部封装了字节输入流和输出流 * 通过构造函数可以看出:该类只能操作文件,而且操作文件还

Java—IO流 RandomAccessFile类

RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件. 支持随机访问文件,可以访问文件的任意位置. java文件模型,在硬盘上的文件是byte byte byte存储的,是数据的集合 打开文件,有两种模式,"rw"读写."r"只读:RandomAccessFile raf = new RandomAccessFile(file, "rw");,文件指针,打开文件时指针在开头 point = 0; 写方法,

[javaSE] IO流(递归查找指定文件)

递归方法,实现查找目录中以.java为后缀的文件路径,并存入文本文件中 定义一个静态方法fileToLine(),传入参数:File对象目录,List集合对象(List<File> 这样做的目的是因为这个方法会被递归,因此不能在内部创建,并且List集合是引用传递) 调用File对象的listFiles()方法,获取目录数组File[] files 循环这个数组for(File file : files),循环中 判断是否是目录file.isDirectory为真,进行递归fileToLine

[javaSE] IO流(FIle对象递归文件列表)

获取File对象,new出来,构造参数:String目录名 调用File对象的list()方法,获取String[]数组文件名称 循环数组,列出所有文件包含隐藏文件 递归列出所有的数据 定义一个静态方法showDir(),传递进参数:FIle对象 调用File对象的listFiles()方法,得到File[]数组 循环File[]数组,每个元素是File对象 循环中,调用File对象的isDirectory()方法,判断是否是一个目录,如果是目录,再次调用showDir()方法,参数:File对

[javaSE] IO流(装饰设计模式)

装饰设计模式:当想要对已有的对象进行功能增强时,可以自定义类将已有的对象传入,并提供加强功能,自定义的该类称为装饰类 典型的: Reader--FileReader --BufferedReader class Decorator{ public void eat(){ System.out.println("吃饭"); } } public class DecoratorDemo extends Decorator{ public DecoratorDemo() { } public

Java基础知识强化之IO流笔记63:随机访问流RandomAccessFile

1. 随机访问流RandomAccessFile RandomAccessFile类不属于流,是Object类的子类.但它融合了InputStream和OutputStream的功能.支持对随机访问文件的读取和写入. RandomAccessFile的构造方法: 构造方法摘要 RandomAccessFile(File file, String mode)           创建从中读取和向其中写入(可选)的随机访问文件流,该文件由 File 参数指定. RandomAccessFile(St

RandomAccessFile&amp;IO流&amp;排序&amp;方法论

RandomAccessFile&IO流&排序&方法论 我们总觉得历史是极其遥远的东西,与我们并无关联,又觉得历史隐藏在图书馆的旧书之中. 然而,我们每个人都有真真切切的历史.那便是每日的历史.今天自己做了些什么,又是怎么做的,都会成为你历史中的一页. 是畏缩不前.碌碌无为,还是勇猛挑战,花心思比昨天做的更好.每种态度,都会写就属于你的历史. --尼采 <快乐的知识> RandomAccessFile 以下是昨天对RandomAccessFile的具体练习: 1 pac