新手上路,谁帮我解决这个小问题

第一个while语句条件,为什么一串字符可以赋值给字符变量ch,然后第二个while语句中data=fin.read()为什么读取的字符能赋值给整型变量data

 public static void main(String[] args) {
        FileInputStream fin;
        FileOutputStream fout;
        char ch;
        int data;
        try {
            fin = new FileInputStream(FileDescriptor.in);
            fout = new FileOutputStream("d:\\java程序设计\\1.txt");
            System.out.println("请输入一串字符,并以#结束");
            while ((ch = (char) fin.read()) != '#') {
                fout.write(ch);
            }
            fin.close();
            fout.close();
            System.out.println();
            fin = new FileInputStream("d:\\java程序设计\\1.txt");
            fout = new FileOutputStream(FileDescriptor.out);
            while (fin.available() > 0) {
                data = fin.read();
                fout.write(data);
            }
            fin.close();
            fout.close();
        }
        catch(FileNotFoundException e){
            System.out.println("文件没找到");
        }
        catch(IOException e){
        }

    }

在fileinputstream中,不带参数的read每次读取一个字符,但是使用的是int类型来进行接收;
所以返回int是理所当然,而你的char类型是强制将int转换成char的,所以char类型接收了你的第一个输出。

希望可以帮到你....