丶一支 2016-10-25 01:03 采纳率: 0%
浏览 961

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

第一个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){
        }

    }
  • 写回答

1条回答 默认 最新

  • little_how 2016-10-25 01:16
    关注

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

    希望可以帮到你....

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:有没有什么其他办法能够保证不退出进程(相关搜索:matlab调用)
  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧