package 个人作业续1;
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 Wenjian
{
    public static void main(String[] args)
    {
        long start = System.currentTimeMillis();
        
        int LENGTH=1000;//数量
        int FANWEI=10000;//范围,从负到正
        int inum;
        int j=0;
        int m=0;
        int i=0,r=0,k=0;
        
        String snum="";
        String fileName="number.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("\n");
                        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(j>=LENGTH)
                
                {
                    System.out.println("数字过多,多于"+LENGTH+"将不予读取");
                    break;
                }*/
                 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("答案为:\t"+maxsum);

        }
        catch(InputMismatchException e2)
        {
            System.out.println("数字过大或输入格式不对");
        }
        catch(Exception e)
        {
            System.out.println("错误于:\t"+i);
            System.out.println("错误!!!");
            System.out.println(e.getMessage());
            e.printStackTrace();
        }
        
        
                long end = System.currentTimeMillis();
                System.out.println("程序运行时间:"+(end-start)+"ms");
        
    }
}
Main

 

posted on 2019-03-17 20:14  墨钺  阅读(97)  评论(0)    收藏  举报