我正在写代码,有一个函数reading(),它接受一个String文件名并通过全局变量getCipher(char)返回一个新值。函数本身如下所示:
System.out.print("Text from file is:");
BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\\\Users\\\\user\\\\Desktop\\\\" + filename));
int symbol = bufferedReader.read();
while (symbol != -1) {
getCipher = (char) symbol;
symbol = bufferedReader.read();
System.out.print(getCipher);
}
bufferedReader.close();
return getCipher;
现在的问题是,事实证明我只在从文件读取时打印最后一个元素,我也知道我可以使用一个 char 元素数组。但问题是我不会写
getCipher[] = (char)symbol //невозможно , так как запись в массив происходит через циклы
如何获取所有字符并将它们一次写入数组?我可能会错过一些东西而不知道。
该对象
BufferedInputStream有一个方法readAllBytes(),您可以通过该方法获取传输流的字节长度。用这个长度初始化数组,然后逐字节迭代并用值填充数组。例子:
使用数组将很困难,因为最初不知道大小。您可以
ArrayList<Character> list = new ArrayList<>();在每次阅读时添加一个字符:list.add((char)symbol)