package inputSystem;import java.io.*;/*** @author Cherry* @date 2022年1月19日* @time 16:18* @brief 从磁盘文件中读入缓冲区*/public class DiskFileHandler implements FileHandler {private String filename;//接收所有输入的字符串,将所有语句连成一行字符串public StringBuilder input_buffer = new StringBuilder();//input_buffer当前指针位置private int curPos = 0;FileInputStream fs = null;BufferedReader br = null;DiskFileHandler(String filename) {this.filename = filename;}@Overridepublic void Open() throws IOException {String line = "";br = new BufferedReader(new FileReader(filename));while ((line = br.readLine()) != null) {input_buffer.append(line);input_buffer.append('\n');}}@Overridepublic int Close() {return 0;}/*** 从 input_buffer 中读数据到缓冲区* @param buf 缓冲区 Start_buf* @param begin 缓冲区写入的起始地址* @param len 缓冲区要写入字符的长度* @return 返回实际上写入的字符数量*/@Overridepublic int Read(byte[] buf, int begin, int len) {int readCnt = 0; //实际上读取的字符数量if (curPos >= input_buffer.length()) {return 0;}byte[] inputBuf = input_buffer.toString().getBytes();//当已经读取的字符串长度小于要求读取的长度 且 已经读取的长度小于输入流中剩余的长度while (readCnt < len && curPos + readCnt < input_buffer.length()) {buf[begin + readCnt] = inputBuf[curPos + readCnt];readCnt++;}curPos = curPos + readCnt;return readCnt;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。