まず、デザインのアイデア
1、文書は(最後の学期でした、てFileWriter)新しい知識BufferWriterを読み出し動作。
処理のためのBigIntegerの使用:2、データが大きすぎるオーバーフローの問題、新しい知見です。
3、コースのアレイの前に問題の最大値。
第二に、タイトル
第三に、ソースコード
パッケージのテスト; 輸入java.io.BufferedReader; 輸入java.io.BufferedWriter; インポートのjava.io.File; 輸入java.io.FileInputStream; 輸入java.io.FileWriter; インポートにjava.io.IOException; 輸入java.io.InputStreamReader; インポートがjava.math.BigInteger; インポートjava.util.Scanner; パブリック クラスshu1 { 静的文字列S = "" ; 静的に=スキャナ新しいスキャナ(System.in)。 公共の 静的な 無効メイン(文字列[] argsが)スロー{にIOExceptionの chansheng(); リード(); // のSystem.out.println(S); 文字列[] = s.split鳴っ( "[^( - 9--10-9)]"); // デジタルアレイ鳴っに分割して格納されたリードの列における // int型値= 0; // INT SUM = 0; のBigInteger値= 新しい新規のBigInteger(「0」); BigIntegerのSUM = 新しい新規のBigInteger(文字列.valueOf(鳴っ[0])); // 配列SUMに最初の値に割り当てる // SUM = Integer.parseInt(鳴っ[0]); のための(INT I = 0; I <rang.length。 ++ I ) { のInt A = value.compareTo(BigInteger.valueOf(0 )); IF(A == 0 || A == -1 ){ // 値= Integer.parseInt(鳴っ[I]); // と共に使用した場合記録された値が0以下加算する必要はなく、値にこの時間は以下に等しい 値= 新しい新規のBigInteger(String.valueOf(鳴っ[I])); } そうでなければ{ (value.add 新しい新規のBigInteger(文字列.valueOf(鳴っ[I]))); // 値= Integer.parseInt +(鳴っ[I]); // 値がまだ加算継続する値0よりも大きいです } IF(== sum.compareTo(値)-1){ // 最大値和に割り当てられたサブアレイ、合計値の値が値よりも大きい場合、その値の総和に等しい 合計= 値; } } のSystem.outは。 println( "最大値は" + SUM); } // ファイル方法読み取る パブリック 静的文字列を読み出し()をスローにIOException { FileInputStreamのFIS = 新しい新規のFileInputStream(「D:\\文書\\テキスト・コード・ファイル\\アレイ。 TXT " ); BufferedReaderのBR = 新しい新しいをBufferedReader(新新InputStreamReaderの(FIS)); 文字列のTEMP = "" ; しばらく((TEMP = br.readLine())!= nullの) S = S + TEMP + "\" N-; // 記事が文字列に格納されているファイルしますS fis.close(); // 近いファイル br.close(); 戻りS; } //は、乱数を生成し、ファイル操作に書き込み パブリック 静的 ボイド chansheng()スローにIOExceptionが { int型); N; System.out.println( "計算されたデータ量を入力してください") N = in.nextInt()。 ファイルfile1 = 新しいファイル( "D:\\代码文件\\文本文件\\数组.TXT" ); 出てFileWriter = nullを。 試す{ 外に = 新しいてFileWriter(FILE1)。 } キャッチ(IOExceptionを電子){ e.printStackTrace(); } BufferedWriterのBW = 新しいBufferedWriterの(アウト)。 以下のために(INT iが= 0、I <N; I ++ INT { int型 RAN =( )(Math.random()* 10000000) - (int型)(Math.random()* 100000000 ); BigIntegerのA = 新しいBigIntegerの(String.valueOf(RAN)); // bw.write(String.valueOf(RAN)+ "「); bw.write(String.valueOf(A)+ "" ); } bw.close()。 } }