java将文本文件倒置读出,使用RandomAccessFile流将一个文本文件倒置读出

如题,这个应该并不是很难,难的是如果中文和外文混合的话不知道怎么读出,我的代码只能实现英文读出,如果中文和外文混杂的话就会读出乱码。如果某年某月某日某时你看到了这篇文章,并且可以处理现存的多种文字的话请在下面留言,多谢……

Code:

import java.io.*;

import java.util.*;

public class TestRandomAccessFile {

public static final void main(String[] args) {

try {

File f = new File("exp.txt");

if(!f.exists()) {

f.createNewFile();

}

RandomAccessFile raf = new RandomAccessFile(f,"rw");

String str = new String();

str = new Scanner(System.in).next();

for(int i=0; i

raf.write(str.charAt(i));

}

raf.writeUTF(str);

long len = str.length();

while(0 != len--) {

raf.seek(len);

char ch = (char)raf.read();

System.out.println(ch);

}

raf.close();

} catch(IOException e) {

e.printStackTrace();

}

}

}

标签:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,可以使用JavaRandomAccessFile来实现这个功能。以下是代码示例: ```java import java.io.*; public class ReverseReadFile { public static void main(String[] args) { String filePath = "input.txt"; // 文件路径 try (RandomAccessFile file = new RandomAccessFile(filePath, "r")) { long fileLength = file.length(); // 获取文件长度 StringBuilder sb = new StringBuilder(); // 用于存储倒置后的内容 for (long pointer = fileLength - 1; pointer >= 0; pointer--) { file.seek(pointer); // 移动指针 char c = (char) file.read(); // 读取一个字符 if (c == '\n') { // 如果当前字符是换行符,则将当前行添加到StringBuilder中 sb.append(c); } else { // 否则将当前字符添加到StringBuilder的开头 sb.insert(0, c); } } System.out.println(sb.toString()); // 打印倒置后的内容 } catch (IOException e) { e.printStackTrace(); } } } ``` 在上面的代码中,我们首先定义了要读取的文件路径。然后使用try-with-resources语句创建了一个RandomAccessFile流,打开指定的文件并设置为只读模式。 在for循环中,我们从文件的末尾开始逐个字符地读取文件内容。对于每个字符,我们判断它是否是换行符。如果是换行符,则将当前行添加到StringBuilder中;否则,将当前字符添加到StringBuilder的开头。 最后,我们打印倒置后的内容。如果在读取文件时出现了错误,我们通过捕获IOException异常来打印异常堆栈信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值