Java流编程实现双精度运算及异常处理计算器
本篇文章主要介绍了如何利用Java的输入输出流(Input/Output Streams)进行编程,实现一个简单的文件操作计算器功能。计算器的主要功能包括: 1. **数据存储**: - 首先,用户被引导输入第一组操作数,并将其保存在名为"src/jsq1.txt"的文件中,通过`FileWriter`和`BufferedWriter`对象实现。 - 同样,第二组操作数也存储在"src/jsq2.txt"文件中。 2. **用户交互**: - 用户可以选择加、减、乘、除四种运算中的任意一种,通过控制台提示用户输入数字(1-4)来指定操作。 3. **读取与运算**: - 从第一个文件中读取第一个操作数,使用`BufferedReader`从`System.in`获取用户输入,然后从第二个文件中读取第二个操作数。 - 运算的选择会根据用户输入执行相应的计算,如加法(+)、减法(-)、乘法(*)或除法(/),结果存储在"src/jsq3.txt"文件中。 4. **异常处理**: - 提供了异常处理机制,确保程序在处理double或float类型数据时能够妥善处理可能出现的`IOException`,例如文件读写错误或格式不正确等情况。 5. **文件读取结果**: - 最后,从运算结果文件"src/jsq3.txt"中读取并显示运算后的值,但文章未提供这部分的具体代码实现。 6. **循环和终止条件**: - 使用`while`循环持续接收用户的输入,直到用户输入特定的退出条件,比如4或者“˳ϵͳ”。 文章的核心部分展示了如何通过Java的文件I/O流操作来设计一个交互式计算器,这在实际开发中是处理文件数据和用户输入的有效方式。然而,由于提供的部分内容在`switch`语句后没有给出完整代码,这部分需要结合后续的实现来展示完整的运算逻辑和文件读取。整体来看,这篇文章适合学习如何在Java中进行文件操作和基本的用户交互。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class calculator {
public static void main(String[] args) throws IOException {
FileWriter fw1 = new FileWriter("src/jsq1.txt");// 建立文件输出流
BufferedWriter bw1 = new BufferedWriter(fw1);// 建立缓冲式文件输出流
FileWriter fw2 = new FileWriter("src/jsq2.txt");// 建立文件输出流
BufferedWriter bw2 = new BufferedWriter(fw2);// 建立缓冲式文件输出流
FileWriter fw3 = new FileWriter("src/jsq3.txt");// 建立文件输出流
BufferedWriter bw3 = new BufferedWriter(fw3);// 建立缓冲式文件输出流
String strnum = new String();
String str1 = new String();
String str2 = new String();
System.out.println("请输入您要选择的操作(请输入1--4的任一数字)");
System.out.println("1、输入第一组操作数;");
System.out.println("2、输入第二组操作数;");
System.out.println("3、进行运算;");
System.out.println("4、退出系统;");
while (true) {
BufferedReader num = new BufferedReader(new InputStreamReader(System.in));
// 以用户的键盘输入system.in建立缓冲式字符输入流
switch(strnum){
case "1" :
System.out.println("开始向文件1中输入第一组中的数据;");
while (true) {
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
// 以用户的键盘输入system.in建立缓冲式字符输入流
str1 = br1.readLine();// 读取用户输入的一行信息
if (str1.equals("end")||str1.equals("END")){
System.out.println("请输入您要选择的操作(请输入1--4的任一数字)");
break;
}
boolean isDigit=true;
for(int i=0 ; i<str1.length() ; i++){ //循环遍历字符串
if(Character.isDigit(str1.charAt(i))){//用char包装类中的判断数字的方法判断每一个字符
}else{
isDigit = false;
break;
}
}
if(isDigit){
bw1.write(str1);// 将这一行写入到目标文件中
bw1.newLine();// 写入换行符
System.out.println("请输入操作数(输入end或END结束输入)");
}else{
System.out.println("数字格式不对!");
}
}
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展