薰 风 2023-07-19 20:31 采纳率: 63.3%
浏览 14

JAVA使用随机流获取txt中任意字符

随机流实现有一个文件abc.txt,有内容 abcde 获取里面的 bc 与 ce打印到控制台

  • 写回答

2条回答 默认 最新

  • 金戈鐡馬 2023-07-19 22:34
    关注

    要实现从文件中获取随机字符并打印到控制台,可以使用Java的随机访问文件流(RandomAccessFile)来实现。下面是一个示例代码:

    import java.io.IOException;
    import java.io.RandomAccessFile;
    
    public class RandomAccessFileExample {
        public static void main(String[] args) {
            try {
                RandomAccessFile file = new RandomAccessFile("abc.txt", "r");
                long fileSize = file.length();
                int startPos = (int) (Math.random() * (fileSize - 1));
                
                // 移动到随机位置
                file.seek(startPos);
                
                // 读取两个字符
                char[] chars = new char[2];
                chars[0] = (char) file.readByte();
                chars[1] = (char) file.readByte();
                
                // 打印字符到控制台
                System.out.println(chars[0] + "" + chars[1]);
                
                file.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    在这个示例中,首先创建一个RandomAccessFile对象来打开abc.txt文件,并获取文件的大小。然后,使用Math.random()方法生成一个随机的起始位置,该位置在文件大小范围内。接下来,使用file.seek()方法将文件指针移动到随机位置。然后,使用file.readByte()方法读取两个字节,并将其转换为字符。最后,将这两个字符打印到控制台。

    请注意,这个示例假设abc.txt文件是文本文件,其中的内容是ASCII字符。如果文件中的内容是Unicode字符或者其他编码方式,需要适当地修改代码来处理。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月19日

悬赏问题

  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 有关类的报错,在模块里调用另一个模块的方法下的变量时出错
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格
  • ¥15 kali linux用wget archive.kali.org/archive-key.asc指令下载签名无效(失败)
  • ¥15 openHarmony 利用c++程序在dayu210开发板上实现拉取RTSP视频流并且在屏幕上显示
  • ¥15 GD32H757的can通信配置
  • ¥20 nist随机数测试的问题