Java实验十内容二


前言

有了上次经验教训,特地加上了文字描述,记录本菜鸟写的代码。


一、要求是什么?

(2)  参考例10-16,解析一文件(商品列表.txt)中的价格数据,
         并计算平均价格,见书上 p.321 第4.3题

二、我的思路

1.先创立文件类

  File f = new File("C:\\Users\\86137\\Desktop\\Java实验\\Java实验要求\\10 实验十 输入输出流\\10 实验十 输入输出流","商品列表.txt");
注意,第一个传参字符串是文件高一级路径,后一个是文件名

2.然后调用各种判断函数,看是否出问题

	   String str= f.getName();
	   System.out.println("文件的名字:"+str);
	   if(f.exists()){
		   System.out.println("文件是存在的");
	   }
	   else{
		   System.out.println("文件是不存在的");
	   }
	   if(f.canRead()){
		   System.out.println("文件是可读的");
	   }
	   else{
		   System.out.println("文件是不可读的");
	   }
	   if(f.canWrite()){
		   System.out.println("文件是可写的");
	   }
	   else{
		   System.out.println("文件是不可写的");
	   }

	   System.out.println("文件的长度:"+f.length());
	   System.out.println("文件的父路径"+f.getAbsolutePath());

3.用Scanner类解析文件

3.1注意事项

Scanner类解析文件时,必需加上try …catch…。检验文件是否正常打开,抓捕异常,否则会出错异常类是:FileNotFoundException
这次为了捕捉到double数据,要先cin.useDelimiter,指定分割方式,否则将提取不到double数据

3.2 实现代码

try {
		   boolean tt=true;
		  
		   Scanner cin = new Scanner(f);
			  double num=0;
			  cin.useDelimiter("[^0123456789.]+");
			  double sum=0;
		   while(cin.hasNextDouble()) {
		       num++;
			   Double price = cin.nextDouble();
			   System.out.println("商品价格"+num+":"+price);
			   sum+=price;
		   }
			 System.out.println("平均价格:"+sum/num);
		   
		   }catch(FileNotFoundException e){
		   e.printStackTrace();
		   System.out.println("不能打开文件");
		   }

三、我的代码

package ex_10;
import java.io.File;
import java.util.Scanner;
import java.io.FileNotFoundException;
public class outinput {

	 public static void main(String[] args) {
	   File f = new File("C:\\Users\\86137\\Desktop\\Java实验\\Java实验要求\\10 实验十 输入输出流\\10 实验十 输入输出流","商品列表.txt");
	   String str= f.getName();
	   System.out.println("文件的名字:"+str);
	   if(f.exists()){
		   System.out.println("文件是存在的");
	   }
	   else{
		   System.out.println("文件是不存在的");
	   }
	   if(f.canRead()){
		   System.out.println("文件是可读的");
	   }
	   else{
		   System.out.println("文件是不可读的");
	   }
	   if(f.canWrite()){
		   System.out.println("文件是可写的");
	   }
	   else{
		   System.out.println("文件是不可写的");
	   }

	   System.out.println("文件的长度:"+f.length());
	   System.out.println("文件的父路径"+f.getAbsolutePath());
	   try {
		   boolean tt=true;
		  
		   Scanner cin = new Scanner(f);
			  double num=0;
			  cin.useDelimiter("[^0123456789.]+");
			  double sum=0;
		   while(cin.hasNextDouble()) {
		       num++;
			   Double price = cin.nextDouble();
			   System.out.println("商品价格"+num+":"+price);
			   sum+=price;
		   }
			 System.out.println("平均价格:"+sum/num);
		   
		   }catch(FileNotFoundException e){
		   e.printStackTrace();
		   System.out.println("不能打开文件");
		   }
		   
	   }
      }

4.我的运行结果:

在这里插入图片描述

总结

有了上次经验教训,特地加上了文字描述

Java程序设计》课程实验指导书程序代码(答案)(实验),个人原创,仅供参考与交流。 希望多多交流,共同进步! 实验 Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 实验内容: 1.编写Java Application程序,输出1900年到2000年之间的所有润年。(闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.编写Java Appet 程序打印 “水仙花” 数 (它的个、、百位数字的立方的和等于该数本身,如:153=1^3+5^3+3^3) 3. 编写Java Application程序,分别用do-while和for循环计算1+1/2!+1/3!+1/4!...的前20项和 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写出实验报告。要求记录编译和执行Java程序当的系统错误信息提成示,并给出解决办法。 四、实验步骤: 1.编写主类; 2.在static public void main(String[ ] args)方法加入实现要求功能的代码,主要步骤如下: (第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。 (第题)编写Java Applet, 在public void paint(Graphics g)方法加入实现要求功能的代码, 主要步骤是:从100到1000循环,判断每个数是否符合水仙花数的特点,是则输出之。 3.编译运行程序,观察输出结果是否正确。 五、自做实验 1. 输出100以内的所有素数。 提示: 逐个判断小于a的每个正整数x,第重循环针对x,判断其是否是质数。 2.将所输入之正整数,以、八、六进制表示出来。 提示: 可写三个方法分别计算输出、八、六进制表示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉卧考场君莫笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值