课堂作业3

package 数组;



import java.util.Scanner;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.InputMismatchException;

public class shuzu
{
    public static void main(String[] args)
    {
        long start = System.currentTimeMillis();//获取开始的时间
        
        int LENGTH=1000000;//设置取数的范围
        int FANWEI=10000;
        int inum;
        int j=0;
        int m=0;
        int i=0,r=0,k=0;
        
        String snum="";
        String fileName="D:/xin.txt";//设置要读取的文件夹
        int [] num=new int[LENGTH];
         int array[]=new int[LENGTH];
         long maxsum=array[0];
         long maxstart=array[0];
        
        try
        {
            File f=new File(fileName);
            if(!f.exists())//判读按文件是否存在
            {
                throw new Exception("文件"+fileName+"不存在");
            }
            
            FileWriter fw=new FileWriter(f);
            PrintWriter pw=new PrintWriter(fw);
        for( k=0;k<LENGTH;k++,m++)
                {
                    inum=(int)(1+Math.random()*FANWEI*2)-FANWEI;//获取随机数
                    pw.print(inum+" ");//将随机数写入文件夹
                    if(m==20)
                        {
                            pw.print("
");
                            m=0;
                        }
                }
                pw.flush();

            FileReader fr=new FileReader(f);//读取文件内容
            Scanner in=new Scanner(fr);
            if(!in.hasNext())
            {
                throw new Exception("文件"+fileName+"内容为空");//判断文件内容是否为空
            }
            while(in.hasNext())
            {
                
                
                 if(maxstart<0)
                    {
                        maxstart=0;
                    }
                    maxstart+=in.nextInt();
                    if(maxstart>=(Long.MAX_VALUE/2-1)||maxstart<=(Long.MIN_VALUE/2-1))//设置范围
                    {
                        throw new Exception("数字过大溢出");//超出范围之后,显示数字过大溢出
                    }
                    if(maxstart>maxsum)
                        maxsum=maxstart;
                j++;
            }
            
           
            System.out.println("答案为:	"+maxsum);//输出最后答案

        }
        catch(InputMismatchException e2)
        {
            System.out.println("数字过大或输入格式不对");
        }
        catch(Exception e)
        {
            System.out.println("错误于:	"+i);
            System.out.println("错误!!!");
            System.out.println(e.getMessage());
            e.printStackTrace();
        }
        
        
                long end = System.currentTimeMillis();//获取结束的时间
                System.out.println("程序运行时间:"+(end-start)+"ms");//得出最终的时间
        
    }
}

思路:先设定文件中可以存放的数字个数范围,然后设定一个文件夹,随机产生数字,写入该文件夹中,然后读取文件中的数字,找出最后想要的结果,然后在程序的开始获取开始是的时间,然后在结束,获取结束时的时间,然后就可以得出计算所用的时间。

最终结果截图为:

原文地址:https://www.cnblogs.com/zhaoxinhui/p/10548910.html