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流有所了解,平时使用的 ...
随机推荐
- Android 之窗口小部件高级篇--App Widget 之 RemoteViews - 跨到对岸去
在之前的一篇博文( Android 之窗口小部件详解--App Widge t)中,已经介绍了App Widget的基本用法和简单实例.这篇主要讲解 App Widget 的高级内容,即通过 Remo ...
- retina屏实现border边框1px
.border { position: relative; width: 300px; height: 200px; } .border:after { border: 1px solid #ff33 ...
- 传统web和mvc的区别
- iOS面试题04-runtime
runtime/KVO等面试题 1.KVO内部实现原则 回答:1>KVO是基于runtime机制实现的 2>当某个类的对象第一次被观察时,系统就会在运行期动态地创建该类的一个派生类,在这个 ...
- objective-C学习笔记(三)数据成员:属性与实例变量
类型成员 Type Member 结构体 struct 的成员很简单,只有变量. 类的成员就很多了: 数据成员 data member 描述对象(本讲重点) · 实例变量 instance vari ...
- java中对象模型与数据库中的关系模型
实体类还需要配置到hibernate.cfg.xml中,以便Hibernate初始化实体类与数据库表的映射关系.如果只配置了映射关系,而没有配置到hibernate.cfg.xml中,Hibernat ...
- highcharts图表组件入门教程:如何监听柱状图柱子点击事件动态更新当前数据点数值和所对应X轴刻度
highcharts图表组件入门教程:如何监听柱状图柱子点击事件动态更新当前数据点数值和所对应X轴刻度 作者:highcharts | 时间:2014-6-11 14:07:05 | [小 大] | ...
- 什么是RAW?
RAWRAW是一个PHP网站开发系统,使用简单.快捷,核心功能是通过模版组合网站,模版可以自由开发,使开发者不再受传统开发的那种头晕限制,只需要通过填写表单即可完成网站的开发.此外,开发者还可以通过开 ...
- 关于Python中的yield(转载)
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ? 我们先抛开 generator,以一个常见的编程题目来展示 yield ...
- python自学笔记(三)python基本数据类型之列表list
列表list特性概括 1.有序集合 2.通过偏移来索引,从而读取数据 3.支持嵌套 4.可变的类型(dict 字典也是可变的) (1)切片 a = [1,2,3,4,5,6,7] 正向索引 a[0:4 ...