java - 字节流中字符的数字索引

标签 java

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyBytes {
public static void main(String[] args) throws IOException {

    FileInputStream in = null;
    FileOutputStream out = null;

    try {
        in = new FileInputStream("C:\\int.txt");
        out = new FileOutputStream("C:\\out.txt");
        int c;

        while ((c = in.read()) != -1) {
            out.write(c);
        }
    } finally {
        if (in != null) {
            in.close();
        }
        if (out != null) {
            out.close();
        }
    }
}
}

这段代码中的数字(-1)来自哪里?

while ((c = in.read()) != -1) {
            out.write(c);. 

我尝试查看 Java 教程,但它只给了我一个令人困惑的图表。

编辑:我将-1的值更改为-4,这导致最后一个字符被写入很多次。这是为什么?

最佳答案

-1 值标记已到达文件末尾,没有更多内容可读取。

Here是该方法的 javadoc。

关于java - 字节流中字符的数字索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16765170/

相关文章:

java - JTextPane 撤消和重做整个单词

类中带有票证的 Java 数组列表

java - Spring hibernate : org. hibernate.exception.SQLGrammarException

java - 线程类并将信息传递到主 Activity 类到 TextView 中

java - 无法使用 @RestController 获取 XML 响应

java - 泛型如何允许在编译时对类型转换错误进行强类型检查

java - 让 maven 启动 jetty (Tapestry 教程)

java - 有没有一种方法可以自动格式化 Java 代码中的长参数列表,以便每个参数列表都在单独的一行上?

java - 为什么在 Java 中从密码派生 key 时需要 SecretKeySpec?

Java 可见性 : final static non-threadsafe collection changes after construction