java - FileInputStream.read 如何更改我的字节数组?

标签 java arrays fileinputstream

在我正在写作业的程序中,我有一个 FileInputStream我正在使用 read() 将字节读取到数组中流的方法。我在程序中根本没有使用返回值,因为我对它不感兴趣。

但是,我想知道它实际上是如何修改我的数组的?昨晚我读了很多 stackoverflow 帖子,指出 Java 是按值传递,而不是按引用传递,我什至用一个简单的程序自己证明了这一点。

此方法如何修改我的字节数组?

try {
    input = new FileInputStream(FileName);
    bytes = new byte[input.available()];
    input.read(bytes); // reads file in as bytes and stores into bytes
    System.out.println(bytes[0]);


}catch(IOException e)
{
    e.printStackTrace();
}

最佳答案

Java 将字节数组的引用传递给read方法按值。这意味着 read 方法无法使您的局部变量 bytes 指向不同的字节数组,但它可以更改您传递给它的字节数组的内容。

(如果 Java 是“按引用传递”,那么方法可以使局部变量指向不同的对象 - 这在 Java 中是不可能的)

关于java - FileInputStream.read 如何更改我的字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40700173/

相关文章:

java - 如何在java中返回 boolean 值(原始值)?

java - 使用长时间戳或 Joda 时间

ios - UITableView indexPath 和最大可重用单元格数

c - 将字符存储在数组中,C

java - 最终静态数组列表在函数中发生了变化

java - 当使用 Jackson XmlWrapper 在类里面排名第二时,无法反序列化(转换)未包装的列表

arrays - 将字符串值添加到 Numpy 数组 Python 中每个值的末尾

java - 文件输入流和文件输出流

java - FileReader 与 BufferedReader 或 FileInputStream 组合

java - 如何读取文本文件中的特定单词并使用条件语句执行某些操作