目录
1 实验名称
Java IO
2 实验目的
继续熟练掌握在eclipse中调试代码
掌握Java IO中流的基本概念及使用方法
掌握文件锁、Scanner解析文件的使用方法
3 实验源代码
package Text06;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import java.util.Scanner;
public class FileLockDemo {
public static void main(String[] args) throws IOException {
// 获取锁对象
File file = new File("lockfile.txt");
RandomAccessFile raf = new RandomAccessFile(file, "rw"); // 修改这里
FileChannel channel = raf.getChannel(); // 修改这里
FileLock lock = channel.tryLock();
// 如果获取锁失败
if (lock == null) {
System.out.println("文件正在被写入,请稍后再试。。。");
raf.close(); // 添加这里
return;
}
// 如果获取锁成功,则可以读取文件和写入文件
System.out.println("文件已经锁定,可以读取或写入数据。。。");
// 读取文件
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
// 写入文件
System.out.println("请输入一行文本:");
Scanner input = new Scanner(System.in);
String text = input.nextLine();
System.out.println("写入以下内容到文件中:" + text);
raf.write((text + System.lineSeparator()).getBytes()); // 修改这里
// 释放锁
lock.release();
channel.close();
raf.close(); // 添加这里
}
}
4 实验运行结果图
5 总结
此次实验步骤:首先文件读取,Java中提供了多种文件输入流来进行文件读取操作,比如FileInputStream、BufferedInputStream等等;此次实验中,使用BufferedReader来读取文本文件内容,并对于可能出现的异常进行了处理。接着文件写入,Java中也提供了多种文件输出流来进行文件写入操作,比如FileOutputStream、BufferedOutputStream等等;此次实验中,使用BufferedWriter来向文本文件中写入内容,并对于可能出现的异常进行了处理。然后文件拷贝,Java中可以使用字节流或字符流来进行文件拷贝操作,同时也可以使用NIO中的Channel来进行高效的文件拷贝;此次实验中,使用了字节流和字符流来进行文件拷贝,并使用NIO中的Channel来进行高效的文件拷贝。
标签:文件,Java,Scanner,写入,System,实验,IO,程序设计 From: https://blog.csdn.net/cxx0316/article/details/140953557