1、SystemI\O练习:
1)通过键盘输入若干字符,并通过显示器输出;
2)定义一个静态方法validOrNot()用于对输入的字符进行合法性校验,若包含非英文字符,则抛出IllegalStringException异常;
3)通过Try/Catch异常处理机制,处理异常:若包含非英文字符,给予相应提示;若只包含英文字符,则统计字符数量,并输出。 1 package iooutput; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class IOtest {
//因为validOrNot是静态方法 所以异常类也应该是静态的 否则在方法中无法抛出该异常
public static class IllegalCharException extends Exception{ public IllegalCharException(String str){
System.out.println(str);
}
}
//throws/throw的区别 :方法外抛异常用s (很多异常)内务s表特定异常
public static void validOrNot(String str) throws Exception{
int count=0;
for(int i=0;i<str.length();i++)
{
char t=str.charAt(i); //类比于c++中字符串下标
if(t>='a'&&t<='z'||t>='A'&&t<='Z')
{
count++;
continue;
}
else throw new IllegalCharException("不是字母!"); //注意new 实例化异常类的对象
}
System.out.println(count);
} public static void main(String[] args){
BufferedReader br;
String str=null;
System.out.println("please enter string");
br=new BufferedReader(new InputStreamReader (System.in));//键盘输入
try {
while(!(str=br.readLine()).equals("end"))//一行一行读取
{
IOtest.validOrNot(str);
} } catch (IOException e) { //IO异常 一定要抛 注意
e.printStackTrace();
} catch (Exception e) { }
}
}

2、文件读写练习
1)从文本文件(text1.txt)中读取数据,将数据复制到另一文本文件(text2.txt) 中;
2)源文件text1.txt中可能包含中文字符、英文字符以及数字符号等多种字符,请选择适合的流完成文件读写操作;
3)在进行文件复制时,去掉源文件(text1.txt)中的非英文字符。

 package iooutput;

 import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; public class filetest { public static void main(String[] args){
try {
//文件路径必须为/不能为\
FileInputStream rf=new FileInputStream("F:/Users/verlen11/workspace/iooutput/bin/text1.txt");
FileOutputStream wf=new FileOutputStream("text2.txt");
int l=-1;
byte b[]=new byte[512];
while((l=rf.read(b,0,512))!=-1) //此处抛IO异常 //一次性读取512个字符,l表示实际读取的字符数,为-1时表示读取完毕
wf.write(b,0,l);
rf.close();
wf.close();//记得close } catch (IOException e) { //必须抛异常 IO异常包括FileNotFoundException(fileinputstream时必须抛的异常
e.printStackTrace();
} }
} //弄清字节流和字符流的区别

JAVA中IO和异常处理练习的更多相关文章

  1. java中IO流异常处理

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  2. JAVA中IO总结

    JAVA中IO流主要分为两大类: 字节流:InputStream+OutputStream 字符流:Reader+Writer 字节流: InputStream是所有字节输入流的父类 OutputSt ...

  3. Java中IO流的总结

    有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...

  4. Java中的try-catch-finally异常处理

    Java中的try-catch-finally异常处理 一.异常处理 异常(Exception):是在运行发生的不正常情况. 原始异常处理: if(条件) { 处理办法1 处理办法2 处理办法3 } ...

  5. java 中 IO 流分为几种?(未完成)

    java 中 IO 流分为几种?(未完成)

  6. Java中IO流,输入输出流概述与总结

    总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...

  7. JAVA中IO技术:BIO、NIO、AIO

    1.同步异步.阻塞非阻塞概念        同步和异步是针对应用程序和内核的交互而言的. 阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作 ...

  8. JAVA中IO和NIO的详解分析,内容来自网络和自己总结

    用一个例子来阐释: 一辆客车上有10个乘客,他们的目的地各不相同,当没有售票员的时候,司机就需要不断的询问每一站是否有乘客需要下车,需要则停下,不需要则继续开车,这种就是阻塞的方式. 当有售票员的时候 ...

  9. JAVA中IO流总结

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42119261 我想你对JAVA的IO流有所了解,平时使用的 ...

随机推荐

  1. 【踩坑】近来在Firefox上遇到的一些坑

    因为工作一年多以来,做的工作基本都是和webkit系列打交道. 先是做m站,后来做了两个app内嵌的hybrid项目,从来只考虑webkit前缀和相关的伪类. 最近四个多月开始做内部的管理系统,写写样 ...

  2. 如何隐藏DLL中,导出函数的名称?(转)

    如何隐藏DLL中,导出函数的名称?(转)   一.引言 很多时候,我们写了一个Dll,不希望别人通过DLL查看工具,看到我们的导出函数名称.可以通过以下步骤实现: 1. 在def函数中做如下定义: L ...

  3. Struts学习之集成Ajax

    转自:http://blog.csdn.net/hanxuemin12345/article/details/38782213 一,引题 1,Json数据格式简介 JSON是脱离语言的理想的数据交换格 ...

  4. js基础 1.简单js 语法 关键字 保留字 变量

    简单js JavaScript 是一个松散性的语言 对象属性却不想c中的结构体或者c++ 和java的对象, 对象继承机制 使用原型的prototype(原型链),js的分为三部分ECMAScript ...

  5. poj 3358

    /** 大意: 给定小数(p/q),求其循环节的大小和循环节开始的位置 解法: 若出现循环 ai*2^m= aj%p; 即 2^m %p =1 若2与p 互素,则可由欧拉函数的, 不互素,需将其转化为 ...

  6. IOS 定位服务与地图的应用开发

    1.定位服务 现在的移动设备很多都提供定位服务,IOS设备提供3种不同定位途径: (1)WiFi定位,通过查询一个WiFi路由器的地理位置的信息,比较省电:IPhone,IPod touch和IPad ...

  7. COM编程之IUnknown接口

    COM组件其实是一种特殊的类,遵循一个统一的标准,使到各个软件都可以通过某种方法访问这个类的函数和方法,也就可以做到组件通用. com就是统一的标准--通过接口来调用com组件.接口是你的com组件能 ...

  8. Objective-c 类实现 (@implementation)

    在用@interface声明类之后,可以使用@implementation进行实类的实现.类的实现的具体语法如下: @implementation 类名 方法实现代码; @end; 实例: @impl ...

  9. 【在网页中获取截图数据】Chrome和Firefox下的实战经验

    [转载自我在segmentfault的专栏:https://segmentfault.com/a/1190000004584071] 最近在实现一个功能,需求如下: 前提:当前页面无弹窗 页面任意位置 ...

  10. 使用数据库绑定ListBox控件

    1. The HTML Markup <div> <asp:ListBox ID="ListBox1" runat="server">& ...