本来以为RandomAccessFile在没有文件时, rw模式会自动创建文件,结果写如下代码时,报java.io.FileNotFoundException 异常.
package shareMemory;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileChannel.MapMode;
public class MappedByteBufferTest {
/**
* @param args
*/
public static void main(String[] args) {
String str = "XXXXXXXXERXXXR" ;
MappedByteBuffer mbb;
try {
String outputFile = "F:\\test\\shareMemory\\test\\sharememory.txt";
RandomAccessFile raf = new RandomAccessFile(outputFile, "rw");
FileChannel fc = raf.getChannel();
mbb = fc.map(MapMode.READ_WRITE, 0, 1024);
mbb.put(str.getBytes());
raf.close() ;
} catch (IOException e) {
e.printStackTrace();
}
}
}
发现原因是
RandomAccessFile 不能跨目录创建文件。
比如原目录是
test\\shareMemory\
则只能在该目录下直接创建,如果想让其直接创建
test\\shareMemory\test\a.file
就会报文件找不到的异常。因此必须手动创建
test\\shareMemory\test目录后,方可自行创建文件。
分享到:
相关推荐
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java....
import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Scanner; public class Main { public static void main(String[] arg
`java.io`包是Java标准库中非常重要的组成部分之一,它提供了大量的类和接口,用于处理输入/输出流、文件系统操作以及对象的序列化等。这些功能对于开发各种类型的应用程序都是不可或缺的。 ##### 数据流 数据流是...
`RandomAccessFile`是Java.io包中的一个核心类,它结合了输入流和输出流的功能,允许我们以字节或字符为单位对文件进行随机读写。它不遵循传统的流式模型,即数据只能从源到目的地单向流动,而是可以在文件的任意...
- **随机访问文件**:`java.io.RandomAccessFile` 支持在文件任意位置读写,常用于大文件操作。 5. **文件复制和移动** - **复制**:可以使用 `java.nio.file.Files.copy()` 或自定义逻辑实现文件复制,考虑是否...
创建一个TXT文件在Java中可以通过`java.io.File`类和`java.io.FileWriter`类来实现。首先,需要创建一个`File`对象,它代表了文件系统中的文件或目录。如果文件不存在,可以调用`createNewFile()`方法来创建一个新的...
import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.io.RandomAccessFile; import android.os.Bundle;import android.os.Environmen
Java中的RandomAccessFile类是用于文件随机读写的工具类,它属于java.io包。RandomAccessFile提供了读取和写入文件的能力,并且允许程序访问文件的任意位置,这使得它能够方便地进行文件的随机访问。...
写入TXT文件可以使用`java.io.RandomAccessFile`类,它允许随机访问文件的任何位置。在示例代码中,`writeTxtFile()`方法首先读取现有文件内容,然后添加新字符串并重新写入: ```java public static void writeTxt...
1. 创建文件夹:在 Java 中,我们可以使用 `java.io.File` 类的 `mkdir()` 或 `mkdirs()` 方法来创建单个文件夹或嵌套的文件夹结构。`mkdir()` 仅创建单个文件夹,如果路径中的父目录不存在,则可能失败;而 `mkdirs...
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.RandomAccessFile; public class Test { private static int position = -1; public ...
RandomAccessFile类位于java.io包中,是处理文件的便捷工具。它既可以作为一个输入流来读取文件内容,也可以作为一个输出流来写入数据。RandomAccessFile构造器需要两个参数:第一个是文件的路径名;第二个是模式...
`RandomAccessFile`是Java标准库中用于处理文件的类之一,位于`java.io`包中。它结合了`FileInputStream`和`FileOutputStream`的功能,不仅能够读取文件,还能向文件写入数据。此外,`RandomAccessFile`还支持随机...
import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteOrder; import java.nio.MappedByteBuffer; import java.nio.channels....
Java基础知识是学习Java编程语言的基石,其中包括对输入/输出(IO)的理解和应用。Java IO是Java平台中处理数据输入和输出的核心组件,对于任何Java开发者来说,掌握这一部分的知识至关重要。以下将详细阐述Java基础...
Java还提供了流式操作(如`InputStream`和`OutputStream`)、随机访问文件(`RandomAccessFile`)以及NIO(New IO)框架,用于更高效和灵活的文件处理。NIO提供了非阻塞I/O、通道和缓冲区等特性,适合大数据量的文件...
同时,理解Java IO的异常处理机制也很关键,因为I/O操作可能会出现各种异常,如FileNotFoundException、IOException等,及时捕获并处理这些异常是保证程序稳定运行的必要条件。 总之,Java IO是Java平台的重要组成...
首先,Java提供了多种类用于处理文件输入输出,其中`java.io`包中的`FileInputStream`和`FileReader`是基础类,用于读取文件内容。然而,对于随机访问文件,我们通常会使用`RandomAccessFile`类,它提供了随机访问和...
`java.io.File`是Java中的核心类,用于表示文件和目录路径名的抽象表示。你可以通过构造函数创建一个`File`对象,传递文件的绝对或相对路径。例如: ```java File file = new File("path/to/your/file.txt"); ``` ...