1. 学习时还是要多个心眼,不要太依赖IDE,以至于很多细节都忽略了。
比如,String类里有个toUpperCase(),如果
有个String str="abc",str.toUpperCase()后,问你str变化没?答案是没有,打印出 str还是“abc",
估计这个方法的内部,Java就是另外定义了一个新的字符串变量,把变化好的字符赋给新的定义的字符串,老的字符串还是没有改变的。
2. 整型常量有3种表示方式:
①十进制整数。例如,123、一456、0。
②八进制整数。以0开头的整数是八进制数
。例如,0123表示8进制数123<8),等于十进制数83。
③十六进制整数。以ox或0x开头的整数是十六进制数
。例如,0x1.23或0Xl 23表示十六进制数123…),等于十进制数291。
如果在整型常量后面加上字母u或u,则表示无符号整数(unsigned int)。例如,123U或123u是unsigned int型的。
如果在整型常量后面加上一个字母L或l,则表示长整数(10ngint)。例如,123[.或123l是long int型的。 Integer.toHexString(i)是十进制转换为十六进制,Integer.toOctalString(i)是十进制转换为八进制,这些单词记下比较好。
3. 对于RandomAccessFile类,我平常也没用过他,只是见过,既然笔试碰到了,我就关注下,这个类是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了。这些记录的大小不必相同;但是其大小和位置必须是可知的。但是该类仅限于操作文件。
执行的结果如下:
你会发现,一个double占8个字节,RandomAccessFile有定位功能,而且,读完第六个数后,自己指向第七个数,所以,在这个基础上,你再执行后面的rf.writeDouble(47.ooo1),它就是覆盖第七个数了。
RandomAccessFile
不属于InputStream和OutputStream类系的。实际上,除了实现DataInput和
DataOutput接口之外(DataInputStream和DataOutputStream也实现了这两个接口),它和这两个类系毫不相干,甚至
不使用InputStream和OutputStream类中已经存在的任何功能;它是一个完全独立的类,所有方法(绝大多数都只属于它自己)都是从零开
始写的。这可能是因为RandomAccessFile能在文件里面前后移动,所以它的行为与其它的I/O类有些根本性的不同。总而言之,它是一个直接继
承Object的,独立的类。
基本上,RandomAccessFile的工作方式是,把DataInputStream和
DataOutputStream结合起来,再加上它自己的一些方法,比如定位用的getFilePointer( ),在文件里移动用的seek(
),以及判断文件大小的length(
)、skipBytes()跳过多少字节数。此外,它的构造函数还要一个表示以只读方式("r"),还是以读写方式("rw")打开文件的参数
(和C的fopen( )一模一样)。它不支持只写文件。
只有RandomAccessFile才有seek搜寻方法,而这个方法也只适
用于文件。BufferedInputStream有一个mark(
)方法,你可以用它来设定标记(把结果保存在一个内部变量里),然后再调用reset( )返回这个位置,但是它的功能太弱了,而且也不怎么实用。
使用该版本的开发人员需文件随机存取,就得使用RandomAccessFile类。其I/O性能较之其它常用开发语言的同类性能差距甚远,严重影响程序的运行效率。
开发人员迫切需要提高效率,下面分析RandomAccessFile等文件类的源代码,找出其中的症结所在,并加以改进优化,创建一个"性/价比"俱佳的随机文件访问类BufferedRandomAccessFile。
分享到:
相关推荐
Java的`RandomAccessFile`类是Java I/O流体系中的一种特殊类型,它允许程序员以随机访问模式读取和写入文件。与传统的输入/输出流不同,`RandomAccessFile`可以直接定位到文件的任意位置进行读写操作,这对于处理...
Java中的`RandomAccessFile`是一个强大的类,用于对文件进行随机访问读写。与传统的`InputStream`和`OutputStream`不同,`RandomAccessFile`允许你在文件的任意位置直接读写数据,而不仅仅是从文件的开头顺序读取。...
Java RandomAccessFile 基本文件操作示例 Java RandomAccessFile 是 Java 中的一个文件处理类,提供了随机访问文件的能力,支持读写文件的任意位置。下面是 Java RandomAccessFile 基本文件操作示例的知识点总结: ...
Java中的`RandomAccessFile`类是用于处理文件的高级接口,它允许我们对文件进行随机访问,即在文件的任何位置进行读写操作,而不仅仅是从文件头开始顺序读写。这种能力使得`RandomAccessFile`在处理大文件或者需要...
本教程聚焦于Java中的`RandomAccessFile`类,这是Java I/O流体系中的一个重要部分,用于处理可以随机读写的数据文件。在Java基础学习的第16天,我们将深入探讨这个主题。 `RandomAccessFile`类在`java.io`包下,它...
Java中的`RandomAccessFile`类是一个强大的文件操作工具,它允许程序员以随机访问模式读取和写入文件。与标准的`FileInputStream`和`FileOutputStream`不同,`RandomAccessFile`不仅支持顺序读写,还能直接跳转到...
随机访问文件(RandomAccessFile)是Java提供的一个类,它允许程序随机访问文件中的任意位置,进行读写操作。使用RandomAccessFile可以在文件的任意位置插入数据,这对于那些需要在文件中间添加内容而不干扰其他数据...
RandomAccessFile RandomAccessFile是用来访问那些保存数据记录的文件的,你可以用seek( )方法来访问记录,并进行读写了。这些记录的大小不必相同;但是其大小和位置必须是可知的。但是该类于操作文件。 ...
Java的`RandomAccessFile`类是Java I/O流体系中的一种特殊类型,它允许程序员以随机访问模式读取和写入文件。与传统的输入/输出流不同,`RandomAccessFile`可以任意位置开始读写,这使得它在处理大文件或需要定位到...
在Java编程中,`RandomAccessFile` 类提供了一种方式来处理文件中的数据,允许程序随机访问文件的任何部分。但在处理中文或其他非ASCII字符时,可能会遇到乱码问题。这是因为不同编码方式对字符的表示方式不同,如果...
在Java编程语言中,`FileChannel`和`RandomAccessFile`是两个重要的I/O类,它们主要用于处理磁盘文件。这两个类提供了高级的文件操作功能,例如高效的数据传输和随机访问文件内容。在这个主题中,我们将深入探讨这两...
`RandomAccessFile`是Java中的一个类,位于`java.io`包中,它提供了对文件进行读写的能力,并且可以随机地定位到文件中的任何位置进行数据的读取或写入,这使得在处理大型文件时更为灵活高效。与`FileInputStream`和...
因为使用其他文件流修改文件时是整体的替换,导致SVN上传上去后是整个文件都修改了,所以需要增量修改,这个demo是使用RandomAccessFile增量修改,只修改指定的行,很实用
2. **RandomAccessFile类**:Java提供了`java.io.RandomAccessFile`类来实现文件的随机读写。它可以定位到文件的任意位置进行读写,非常适合处理大文件或需要频繁跳转的场景。使用`RandomAccessFile`时,需要传入...
对于需要在文件的任何位置进行读取的情况,可以使用`java.io.RandomAccessFile`类。它可以让你自由地定位到文件的任意位置进行读写操作: ```java RandomAccessFile randomFile = new RandomAccessFile(fileName...
以上就是使用Java的`RandomAccessFile`类来读取随机文件的基本步骤和注意事项。这个类的强大之处在于,不仅可以方便地读取文件的任意位置,还可以进行写操作,实现文件的随机读写。在实际开发中,根据需求选择合适的...
Java中的`RandomAccessFile`是一个非常重要的类,它允许我们以随机访问模式读写文件,这意味着我们可以自由地在文件的任何位置进行读写操作,而不仅仅是顺序地从头到尾处理文件。这个类提供了对文件内容进行高效定位...
在Java编程中,文件操作是至关重要的,它允许程序与文件系统进行交互,执行诸如读取、写入、追加、删除、移动和复制等操作。本篇文章将深入探讨Java中的文件操作,特别是基于IO流的读取方法。 首先,我们来看如何...
2. **使用RandomAccessFile类保存文件**:在Java中,可以使用`RandomAccessFile`类来随机访问文件,这非常适合用于断点续传场景。它可以读取文件中的任意位置,并支持从文件的任何位置开始写入数据。以下是一个简单...
RandomAccessFile localFile = new RandomAccessFile(localFilePath, "rw"); localFile.seek(localFileSize); // 移动到已下载的部分结束 ``` 6. **开始断点续传下载**:使用`FTPClient`的`retrieveFile`方法,...