zoukankan      html  css  js  c++  java
  • Java第三周作业

    package geren02;
    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=100000000;//数量
            int FANWEI=10000;//   n  :    -n   ~   +n
            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(r=0;r<10;r++)
                {
                    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(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("答案为:	"+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");

    }
    }

    实验要求

    1.要求数组从文件读取。

    
    

    2.如果输入的数组很大,并且有很多大的数字,就会产生比较打的结果(考虑溢出),保证程序正常输出。

    
    

    3.如果输入文件的参数有错误,这个程序应该能正常输出,并显示相应的错误。任何输入错误都不能导致你的程序崩溃。

    
    
    
    
    
  • 相关阅读:
    C++中图片重命名
    linux 常用shell命令之wc
    Linux shell命令之cat
    linux 常用shell命令 ls
    开启博客之旅
    C#并行编程之Parallel的使用
    centos7下安装iperf时出现 make: *** No targets specified and no makefile found. Stop.的解决方案
    勒索病毒场景模拟及原理
    测试用例覆盖分类
    Centos 7下Hadoop分布式集群搭建
  • 原文地址:https://www.cnblogs.com/love-nan/p/10568402.html
Copyright © 2011-2022 走看看