大家好,今天小编关注到一个比较有意思的话题,就是关于java语言的输入输出的问题,于是小编就整理了3个相关介绍j***a语言的输入输出的解答,让我们一起看看吧。

  1. java的输入和输出为什么要那么复杂?
  2. java输入一个字符串,可包含中文,要求查找其中出现次数最多的字符,并将其出现次数一并输出?
  3. Java代程序,键盘输入日期,输出是一年中的第几天。算出的天数会比实际的多出两天。求解决?

j***a的输入和输出为什么要那么复杂?

J***a的IO设计的确很复杂,很多朋友在使用时IO时被各种各样的流弄的晕头转向。

java语言的输入输出-java语言的输入输出流和C语言的输入输出操作对应
(图片来源网络,侵删)

大致情况如下

以Stream结尾的为字节流,以Writer或者Reader结尾的为字符流,

java语言的输入输出-java语言的输入输出流和C语言的输入输出操作对应
(图片来源网络,侵删)

所有的输入流都是抽象类IuputStream(字节输入流)或者抽象类Reader(字符输入流)的子类。

所有的输出流都是抽象类OutputStream(字节输出流)或者抽象类Writer(字符输出流)的子类

java语言的输入输出-java语言的输入输出流和C语言的输入输出操作对应
(图片来源网络,侵删)

之所以IO那么复杂,是为了更好的应对各种场景,比如

BufferedWriter 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。由于继承了FilterInputStream,其可用于包装装饰其他流使它们提高效率,既***用了装饰设计模式。

InputStreamReader和OutputStreamWriter转换流,作为字符和字节的桥梁

对象操作流ObjectInputStream和ObjectOutputStream用于J***a 对象的基本数据类型和图形读写。

用于操作数组ByteArrayInputStream,字符串StringWriter等流

区分技巧,下面分享下我找到的一份IO使用技巧总结

IO设计非常复杂不过其目标还是为了能更好的应对各种场景使用更适合的流提高效率。希望我的回答对你有所帮助。

j***a输入一个字符串,可包含中文,要求查找其中出现次数最多的字符,并将其出现次数一并输出?

import j***a.util.HashMap;

import j***a.util.Iterator;

import j***a.util.Set;

public class Test5

{

public static void main(String[] args)

{

HashMap map =new HashMap();

for(int k=0;k<args.length;k++)

{

if(map.get(args[k])==null)

{

map.put(args[k],new Integer(1));

}

else

{

Integer in =(Integer)map.get(args[k]);

in = new Integer(in.intValue()+1);

map.put(args[k],in);

}

Set set =map.keySet();

for(Iterator it =set.iterator();it.hasNext();)

{

String key =(String)it.next();

Integer value = (Integer)map.get(key);

System.out.println(key +":" + value);

}

}

}

你试试!

J***a代程序,键盘输入日期,输出是一年中的第几天。算出的天数会比实际的多出两天。求解决?

case 2:{}代码块中,语法有问题。当月份大于2时,会进入case 2:,但是case 2内的if else条件不是判断闰年的。所以你的case 2改变days=29或者28不会被执行,切days=31(case 1语句赋的值31)。

根据你的代码思路修改的:

到此,以上就是小编对于j***a语言的输入输出的问题就介绍到这了,希望介绍关于j***a语言的输入输出的3点解答对大家有用。