java输入流遇到的问题

读取的文件内容为abcdef    代码为

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class User {
    public static void main(String[] args) {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("D:\\资料\\TEMO.txt");
            while (true) {
                int readDate = fis.read();
                if (readDate == -1) {
                    break;
                }
                System.out.println(readDate);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fis!= null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }


    }
}

输出结果为97
98
99
100
101
102
13
10         为什么会有  结果 会有13 和10 啊   求解答  

13和10就是回车符和换行符,输入结束肯定要敲回车键吧。

如果要避免这个问题的话,可以从两个方面入手,第一个就是文本,你要保证文本没有换行,也就是在输入完 abcdef 后面不要加换行了。

第二个就是从代码层面,但是这个就需要知道你的需求,或者题目的意思,如果是只要数字和字母的话,那么遇到不是数字和字母的直接退出就好了。要从代码入手是需要清楚知道题目要求。的。

改变判断条件,比如readDate ==13时结束

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632