IO模拟键盘输入输出
来源:互联网 发布:uptodate软件价格 编辑:程序博客网 时间:2024/05/02 06:09
IO模拟键盘输入输出
看了毕向东老师关于模拟键盘录入的视频。
试验了下用自定义InputStream类的对象模拟键盘录入,用自定义PrintStream类的对象模拟键盘输出。
并写了下后来的小练习:
通过键盘录入数据。当输入一行数据后,就将该行数据进行打印。如果录入的数据时over,那么停止录入。
cmd_1为自己用byte数组接收一行命令并判断是否是over。
cmd_2是毕老师讲解的用StringBuilder接收命令字符串。
全部代码如下:
import java.io.*;class ReadIn{public static void main(String[] args) {//cmd_1();cmd_2();}public static void cmd_2() //毕向东的做法。用StringBuilder存储每次输入的命令{InputStream in = null;PrintStream out = null;StringBuilder sb = new StringBuilder();try{int length = 0;int ch;in = System.in;out = System.out;while((ch = in.read()) != -1){if(ch == '\r')continue;else if(ch == '\n'){String s = sb.toString();if("over".equals(s))break;out.println(s); //打印一行换行,用println而不用print,是因为sb中没存入'\n'sb.delete(0,sb.length());}elsesb.append((char)ch);}}catch (IOException e){System.out.println("读写失败!");}finally{if(in!=null){try{in.close();}catch (IOException e){System.out.println(e.toString());}}}}public static void cmd_1() //读取字节数组的做法{InputStream in = null; //自定义输入,模拟键盘录入。PrintStream out = null; //自定义输出,模拟键盘输出。try{int length;byte[] b = new byte[1024];String cmd;in = System.in;out = System.out;while((length=in.read(b))!= -1) //首先要获得敲入命令的长度{cmd = new String(b,0,length); //获取该命令。if((length == 6)&&("over".equals(cmd.substring(0,4)))) //如果命令长度为6(over加上'\r''\n'应6个字符)且前四个为overbreak; //String类的substring(begin,end)方法,是从begin位置(第一位是0)到(end-1)位置的子字符串!!elseout.print(cmd); //用print打印一行换行,因为'\r'、'\n'都存入进了}out.close(); //PrintStream类的方法不抛出异常。}catch (IOException e){System.out.println("读写失败!");}finally{if(in!=null){try{in.close();}catch (IOException e){System.out.println(e.toString());}}}}}
- IO模拟键盘输入输出
- IO之键盘输入、输出到控制台上
- io键盘输入
- 模拟键盘输入
- 模拟键盘输入
- 模拟键盘输入
- 键盘输入输出
- 模拟键盘输入器
- C++模拟键盘输入
- C#模拟键盘输入
- 用Delphi模拟键盘输入
- <c#>模拟键盘输入
- Linux 下模拟键盘输入
- 使用Javascript 模拟键盘输入
- Linux 下模拟键盘输入
- 使用keybd_event模拟键盘输入
- 用Delphi模拟键盘输入
- Python 模拟键盘输入
- 黑马程序员_JavaAPI上
- 集训日记
- ORA-32004 解决办法
- Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
- Struts2 用 s:if test 判断属性和字符串相等时 注意双引号和单引号的使用
- IO模拟键盘输入输出
- 我的云设计
- XMind提示"could not open ...\i386\jvm.cfg"
- ARM-1176 S3C6410 lowlevel_init过程注释
- POJ-3122 Pie
- poj-1905 Expanding Rods
- poj-3258 River Hopscotch
- poj-3273 Monthly Expense
- T2Code 1.0(基于模版技术的代码生成器)发布啦~~~