/*
需求:使用RandomAccessFile实现一下要求:
1 存取基本数据类型
2 随机读取某段位置的内容(一般内容都有规律)
3 随即在某段位置上写一段数据
4 修改某一段位置的内容
5 使用其中的读写模式参数创建文件
思路:5 构造函数告诉我们,RandomAccessFile只能接收文件类型的参数
其中文件类型可以是文件对象,也可以是字符串表示的文件名;
同时当传入的读写模式参数为只读时,当文件存在时,不会创建,只会读取,
当文件不存在时,抛出异常;
当传入的读写模式参数为读写时,文件不存在则创建文件对象,存在也不会覆盖该文件
readInt()读取一个字节内容
seek(8);将文件指针指向角标为8的位置;
步骤:
*/
package randomaccessfile;
import java.io.*;
class RandomAccessFileTest
{
public static void main(String []args)throws IOException
{
writeFile();
}
public static void writeFile()throws IOException
{
RandomAccessFile raf=new RandomAccessFile("random.txt","rw");
raf.seek(8);
raf.write("李四".getBytes());
raf.writeInt(23);
raf.seek(8);
byte[] buf=new byte[4];
raf.read(buf);//这里不是要有个int型参数来接受返回值吗?没有怎么也可以编译通过啊,求解释!
String name=new String(buf);
System.out.println(name+p);
System.out.println(raf.readInt());
raf.close();
}
}
问题在注释read方法的返回值
需求:使用RandomAccessFile实现一下要求:
1 存取基本数据类型
2 随机读取某段位置的内容(一般内容都有规律)
3 随即在某段位置上写一段数据
4 修改某一段位置的内容
5 使用其中的读写模式参数创建文件
思路:5 构造函数告诉我们,RandomAccessFile只能接收文件类型的参数
其中文件类型可以是文件对象,也可以是字符串表示的文件名;
同时当传入的读写模式参数为只读时,当文件存在时,不会创建,只会读取,
当文件不存在时,抛出异常;
当传入的读写模式参数为读写时,文件不存在则创建文件对象,存在也不会覆盖该文件
readInt()读取一个字节内容
seek(8);将文件指针指向角标为8的位置;
步骤:
*/
package randomaccessfile;
import java.io.*;
class RandomAccessFileTest
{
public static void main(String []args)throws IOException
{
writeFile();
}
public static void writeFile()throws IOException
{
RandomAccessFile raf=new RandomAccessFile("random.txt","rw");
raf.seek(8);
raf.write("李四".getBytes());
raf.writeInt(23);
raf.seek(8);
byte[] buf=new byte[4];
raf.read(buf);//这里不是要有个int型参数来接受返回值吗?没有怎么也可以编译通过啊,求解释!
String name=new String(buf);
System.out.println(name+p);
System.out.println(raf.readInt());
raf.close();
}
}
问题在注释read方法的返回值
解决方案 »
- 初学socket的问题
- 求问java中过时类的取代
- 请教一个关于字符串截取的问题,谢谢大家了。
- 写一个C/S模式的聊天室,用Socket还是DatagramSocket
- 请教一个简单的问题
- 这个类有什么问题??
- 讨论:询问上海的IT行情
- 调查!!来者有分!!!调查!!来者有分!!!调查!!来者有分!!!调查!!来者有分!!!调查!!来者有分!!!
- 那位能看懂下面这几行程序?请解释一下这是什么样的语法。
- java 类锁 如何显式释放(wait释放的是对象锁)
- 我写了一个java代码,里面有两个问题,1、JTable的数据无法更新;2、JTable的列名无法显示就。还请高人指点
- 【求助】问一个关于iterator迭代器的写法
但你这里最好要接收了判断下,你看APIread的返回:
读入缓冲区的总字节数,如果由于已到达此文件的末尾而不再有数据,则返回 -1。也就是说,
1)你传得buf不一定被写满(4个字节)
2)可能已到尾部,返回是-1。例如其他方法。
File的delete。也有返回值,返回删除成功与否。
如果你只是想删除,不管他删成功否,就可以完全不接受它的返回值。
其实有返回值的情况,最好查看API文档后,再决定。
对你有用的,那么接受,再做处理。 对你功能上没有影响的可以不接受。