×

randomaccessfile写文件

randomaccessfile写文件(randomaccessfile的seek)

admin admin 发表于2023-04-03 10:19:08 浏览73 评论0

抢沙发发表评论

本文目录一览:

RandomAccessFile(File file, String mode) 这个mode指什么?请详细说一下;谢谢啦;

官方API解释如下:

RandomAccessFile

public RandomAccessFile(String name,

String mode)

throws FileNotFoundException

创建从中读取和向其中写入(可选)的随机访问文件流,该文件具有指定名称。将创建一个新的 FileDescriptor 对象来表示到文件的连接。

mode 参数指定用以打开文件的访问模式。允许的值及其含意如 RandomAccessFile(File,String) 构造方法所指定的那样。

如果存在安全管理器,则使用 name 作为其参数调用其 checkRead 方法,以查看是否允许对该文件进行读取访问。如果该模式允许写入,那么还使用 name 作为安全管理器的参数来调用其 checkWrite 方法,以查看是否允许对该文件进行写入访问。-randomaccessfile写文件

参数:

name - 取决于系统的文件名

mode - 此访问 mode

抛出:

IllegalArgumentException - 如果此模式参数与 "r"、"rw"、"rws" 或 "rwd" 的其中一个不相等

FileNotFoundException - 如果该模式为 "r",但给定的字符串表示一个现有的常规文件,或者该模式以 "rw" 开头,但给定的字符串不表示一个现有的可写常规文件,而且无法创建具有该名称的新常规文件,或者在打开或创建该文件时发生一些其他错误-randomaccessfile写文件

SecurityException - 如果存在安全管理器,并且其 checkRead 方法拒绝对该文件的读取访问,或者该模式为 "rw",并且该安全管理器的 checkWrite 方法拒绝对该文件的写入访问-randomaccessfile写文件

另请参见:

SecurityException, SecurityManager.checkRead(java.lang.String), SecurityManager.checkWrite(java.lang.String)-randomaccessfile写文件

java的randomaccessfile读写文件中文乱码问题

java中RandomAccessFile存取读写文件,需要用getBytes()先转换编码,中文乱码解决示例):

package Iec104Config;

import java.io.*;

public class Test {   

    public static void main(String[] args)throws IOException{    

                String stringToBeSaved="测\naa";    

                FileWriter saveFile=new FileWriter("Test.txt", false);    

                PrintWriter savedOut=new PrintWriter(saveFile);    

                savedOut.print(stringToBeSaved+"\n");    

                savedOut.close();            

                RandomAccessFile Open= new RandomAccessFile("Test.txt","r");    

                String s=Open.readLine();    

                s=new String(s.getBytes("8859_1"), "gbk");//编码转换    

                System.out.println(s);    

                System.out.println(Open.readLine());

RandomAccessFile 中文件名应怎么写

一.

RandomAccessFile

1.

RandomAccessFile

Java

输入输出流体系中功能最丰富

的文件内容访问类,它提供了众多的方法来访问文件内

容,它即可以读取文件内容,也可以向文件输出数据。与

普通的输入

/

输出流不同的是,

RandomAccessFile

支持

“随机访问”

的方式,

程序可以直接跳转到文件的任意地

方来读写数据。

注意:

“随机访问”错误的理解是:随机访问是具有不确定

性的:具有一会儿访问这里、一会儿访问哪里的意思!

RandomAccess

的含义:

应该是任意访问,

而不是随机访

问,也就是说

RAM

(随机存取存储器)是可以自由访问任

意的存储点的存储器(与磁盘、磁带等需要寻道、倒带才可

以访问指定存储点等存储器区分)

RandomAccessFile

含义是可以自由访问文件的任意地方(与

InputStream

Reader

需要依次向后读取区分)

所以,

RandomAccessFile

的含义不是“随机访问”

,而应该

是“任意访问”

由于这个原因,如果我们希望只访问文件部分内容,而不

是把文件从头到尾,使用

RandomAccessFile

将是更好的选

择。

2.RandomAccessFile

类有两个构造器,

其实两个构造器基本

相同,

只是指定文件的形式不同而已:

一个使用

String

参数

来指定文件名,一个使用

File

参数来指定文件本身。

RandomAccessFile

是一个很有用的类,

可以将字节流写入到

磁盘文件中,对应的也可以从磁盘文件中读取出字节流,在

API

中关于

RandomAccessFile

的描述如下:

此类的实例支持对随机访问文件的读取和写入。

随机访问文

件的行为类似存储在文件系统中的一个大型

byte

数组。

在指向该隐含数组的光标或索引,称为

文件指针

;输入操作

从文件指针开始读取字节,

并随着对字节的读取而前移此文

件指针。如果随机访问文件以读取

/

写入模式创建,则输出

操作也可用;输出操作从文件指针开始写入字节,并随着对

字节的写入而前移此文件指针。

写入隐含数组的当前末尾之

后的输出操作导致该数组扩展。该文件指针可以通过

getFilePointer

方法读取,并通过

seek

方法设置。

通常,

如果此类中的所有读取例程在读取所需数量的字节之

前已到达文件末尾,则抛出

EOFException

(是一种

IOException

,文件结尾了还继续读文件,就导致这个错误

抛出。本来

EOF

的数值就是

-1

,但是是一种用于错误标识

的记号

)。如果由于某些原因无法读取任何字节,而不是在读取所

需数量的字节之前已到达文件末尾,则抛出

IOException

而不是

EOFException

。需要特别指出的是,如果流已被关

闭,则可能抛出

IOException

randomaccessfile写文件还是bufferedwrite快

小文件RandomAccessFile,大文件BufferedReader。

RandomAccessFile在数据越大,性能越差。因为他是数据文件的一个channel,支持读改原数据文件。

BufferedReader提供处理字符编码的方式,使用InputStreamReader或者DataInputStream之类的。