JAVA中IO和异常处理练习
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和异常处理练习的更多相关文章
- java中IO流异常处理
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...
- JAVA中IO总结
JAVA中IO流主要分为两大类: 字节流:InputStream+OutputStream 字符流:Reader+Writer 字节流: InputStream是所有字节输入流的父类 OutputSt ...
- Java中IO流的总结
有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...
- Java中的try-catch-finally异常处理
Java中的try-catch-finally异常处理 一.异常处理 异常(Exception):是在运行发生的不正常情况. 原始异常处理: if(条件) { 处理办法1 处理办法2 处理办法3 } ...
- java 中 IO 流分为几种?(未完成)
java 中 IO 流分为几种?(未完成)
- Java中IO流,输入输出流概述与总结
总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...
- JAVA中IO技术:BIO、NIO、AIO
1.同步异步.阻塞非阻塞概念 同步和异步是针对应用程序和内核的交互而言的. 阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作 ...
- JAVA中IO和NIO的详解分析,内容来自网络和自己总结
用一个例子来阐释: 一辆客车上有10个乘客,他们的目的地各不相同,当没有售票员的时候,司机就需要不断的询问每一站是否有乘客需要下车,需要则停下,不需要则继续开车,这种就是阻塞的方式. 当有售票员的时候 ...
- JAVA中IO流总结
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42119261 我想你对JAVA的IO流有所了解,平时使用的 ...
随机推荐
- using的用法
1.using指令.using + 命名空间名字.命名空间名字可以是系统本有,也可是自己定义的class. 2.using别名.using + 别名 = 包括详细命名空间信息的具体的类型. 达成条件: ...
- iOS 10 因苹果健康导致闪退 crash
如果在app中调用了苹果健康,iOS10中会出现闪退.控制台报出的原因是: Terminating app due to uncaught exception 'NSInvalidArgumentEx ...
- Objective-c 中的变量
OC中的语言变量,按作用域可分为两种:局部变量和全局变量. 局部变量:也称为内部变量,局部变量是在方法内部声明的.其作用域仅限于方法内,离开该方法再使用这个变量就是非法的. 全局变量:也称为外部变量, ...
- C/C++存储区划分
一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化 ...
- BestCoder Round #38
1001 Four Inages Strategy 题意:给定空间的四个点,判断这四个点是否能形成正方形 思路:判断空间上4个点是否形成一个正方形方法有很多,这里给出一种方法,在p2,p3,p4中枚举 ...
- ASP.NET MVC5 学习笔记-5 测试
1. 测试步骤 准备 执行 检查 2. 创建单元测试 注意:单元测试不要包含数据库操作,包含数据库操作的一般成为集成测试. 2.1 编写测试代码 namespace AspNetMVCEssentia ...
- java时间验证工具
可以验证2014-02-21这种错误
- web乱码问题
String data = "不见青山"; ServletOutputStream sos = response.getOutputStream(); byte b[] = dat ...
- html常用标签有哪些
html看似复杂,其实常用的标签并不多,这里总共介绍一些html的常用标签 文字处理: ①标题:<h1> to <h6> ②段落:<p>文字段落</p> ...
- podoWeb极品流氓软件
用firefox做页面网络性能测试, 打开网页就会发现页面不停的去请求googleapi.com上的jquery Or swfobject.js,页面就此卡住,一直在等待类似这两个请求的返回,知道Ab ...