RandomAccessFile 学习

package com.java.xuelei;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class TestRandomAccessFile {
    public static void main(String[] args) {
        try {
            RandomAccessFile raf = new RandomAccessFile("c:/123.txt", "rw");
//            raf.seek(6);   //指针偏移量为6    指针从第6个字节开始读取
            raf.seek((raf.length()));  //定义指针到尾部   相当于追加
            raf.writeBytes("hahaha");  //写入"hahaha"
            String a=null;
            while((a=raf.readLine())!=null){    //readLine()方法从此文件读取文本的下一行。
                System.out.println(a);
            }
            long len = raf.length();    //返回文件的长度   返回值为long类型    换行占用2个长度
            System.out.println("此文件的长度为"+len);

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch (Exception e) {
            System.out.println("异常");
        }
    }

}

package com.java.xuelei;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class TestRandomAccessFile {
    public static void main(String[] args) {
        try {
            RandomAccessFile raf = new RandomAccessFile("c:/123.txt", "rw");
//            raf.seek(6);   //指针偏移量为6    指针从第6个字节开始读取
            raf.seek((raf.length()));  //定义指针到尾部   相当于追加
            raf.writeBytes("hahaha");  //写入"hahaha"
            String a=null;
            while((a=raf.readLine())!=null){    //readLine()方法从此文件读取文本的下一行。
                System.out.println(a);
            }
            long len = raf.length();    //返回文件的长度   返回值为long类型    换行占用2个长度
            System.out.println("此文件的长度为"+len);
            
            
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();    
        }catch (Exception e) {
            System.out.println("异常");
        }
    }

}

时间: 2024-09-29 10:15:40

RandomAccessFile 学习的相关文章

Java学习总结(8)—内存流,打印流,对象流,RandomAccessFile,装饰者设计模式

一.内存流 内存流主要用来操作内存 BytearrayInputStream和ByteArrayOutputStream输入和输出可以把文件作为数据源,也可以把内存作为数据源 (1)ByteArrayInputStream主要完成将内容从内存读入到程序中,而ByteArrayOutputStream的主要功能是是将数据写入到内存中 (2)注意:因为这两个流没有使用系统资源,所以不用关闭,也不需要抛出异常 内存操作示意图 (1)从程序中读:程序<-ByteArrayInputStream<-内存

系统学习 Java IO (三)----FileInputStream/FileOutputStream &amp; RandomAccessFile

目录:系统学习 Java IO---- 目录,概览 FileInputStream 这是一个简单的FileInputStream示例: InputStream input = new FileInputStream("D:\\input.txt"); int data = input.read(); while(data != -1) { //do something with data... doSomethingWithData(data); data = input.read()

JAVA基础学习day22--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码

一.对象序列化 1.1.对象序列化 被操作的对象需要实现Serializable接口 1.2.对象序列化流ObjectOutputStream与ObjectInputStream ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化. ObjectOutputStream 和 ObjectInputStream 分别与 FileOutputStream 和 FileInputStream 一起使用时,可以为应用程序提供对对象图形的

【幻化万千戏红尘】qianfengDay20-java基础学习:数据流、随机读取文件流RandomAccessFile

课程回顾: 流:转换流:字符和字节的转换对象流(Object):序列化,反序列化 打印流(Print):打印各种数据类型的数据 今日内容:数据流(Data):支持将基本数据类型写出,字节流,处理流1.DataOutputStream:数据输出字节流常用方法:writeXXX:写出基本数据类型的数据writeUTF:写出字符串2.DataInputStream:数据输入字节流常用方法:readXXX:读取基本数据类型的数据readUTF:读取字符串 随机读取文件类:拥有写出和读取基本数据类型的方法

JAVA学习第五十六课 — IO流(十)对象的序列化和反序列化 &amp; RandomAccessFile

操作对象 ObjectInputStream.ObjectOutputStream 被操作的对象需要实现Serializable(标记接口) ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream.可以使用 ObjectInputStream 读取(重构)对象.通过在流中使用文件可以实现对象的持久存储.如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象. 对象的默认序列化机制写入的内容是:对象的类,类签名,以及非瞬态和非静态字段的

JAVA学习笔记(三十五)- 随机读写文件 RandomAccessFile

RandomAccessFile类 /* * RandomAccessFile类,随机读写文件 * * 数据分段要有规律,每段大小相等,可以将每段数据设置为较大的值,足以存在每一个段的数据 * */ public class Test04 { public static void main(String[] args) throws IOException { //writeFile(); readFile(); } // 写入数据 public static void writeFile()

Java的RandomAccessFile对文件内容进行读写

 RandomAccessFile是Java提供的对文件内容的访问,她既可以读文件,也可以写文件,并且RandomAccessFile支持随机访问文件,也就是说他可以指定位置进行访问.   我们知道Java的文件模型,文件硬盘上的文件是byte byte byte的字节进行存储的,是数据的集合.下面就是用这个类的步骤. (1)打开指定的文件,有两种模式“rw”(读写) “r”(只读),创建对象,并且指定file和模式,例如:       RandomAccessFile ac=new Rando

201521123088《Java程序设计》第12周学习总结

1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. 1. 字符流与文本文件:使用 PrintWriter(写),BufferedReader(读)1.1 生成的三个学生对象,使用PrintWriter的println方法写入student.txt,每行一个学生,学生的每个属性之间用|

Java学习日记num10

学习内容:在javaIO中,比较重要的是五个类,一个接口.五个类是 Reaer, Writer,InputStream,  OutputStream,File(前四个类是抽象类,最后一个非抽象),接口是  Serializable.其他流对象. 一,字符流和字节流 IO流用来处理设备之间的数据传输,java对数据的操作时通过流的方式,java用于操作流的对象都在IO包中. 字符流是基于字节流的,字符流里面融合了字符编码表,所以字符流一般操作纯文本数据,而字节流可以操作所有的数据.字符流的两个基类