用重定向方法從文件中讀入或寫入數據
1.問題描述
先產生10000個隨機數,每十個一行,放入文件中。(用重定向方法)
用重定向方法,從文件中讀入10000個數字,打印出前十名。(不許調用排序方法)
2.程序如下:
2.1 寫入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import java.util.Scanner; import java.util.List; import java.util.ArrayList; public class A{ static void to_txt(){ for ( int i= 1 ;i<= 10000 ;i++){ System.out.print(( int )(Math.random()* 10000 + 1 )+ " " ); if (i% 10 == 0 ) System.out.println(); } } public static void main(String[] args){ to_txt(); } } |
2.2 讀出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import java.util.Scanner; import java.util.List; import java.util.ArrayList; public class A{ static void read_txt( int k){ //此處參數表示打印前k項 List<Integer> lst = new ArrayList<Integer>(); Scanner scan = new Scanner(System.in); String s = scan.nextLine(); String[] x = s.split( " " ); lst.add(Integer.parseInt(x[ 0 ])); for ( int i= 1 ;i<x.length;i++){ int b = Integer.parseInt(x[i]); if (b<lst.get(lst.size()- 1 )){ lst.add(b); continue ; } for ( int j= 0 ;j<lst.size();j++){ if (b>lst.get(j)){ lst.add(j,b); break ; } } } for ( int i= 0 ;i<k;i++){ System.out.print(lst.get(i)+ " " ); } } public static void main(String[] args){ read_txt( 10 ); } } |
3.運行結果
3.1、從Java文件位置進入控制臺,在控制臺輸入Java文件 > txt文件,就能將運行結果寫入指定txt文件(要寫入的文件)中。
此時運行結果不在控制臺顯示,而寫入了指定文件中
3.2、在Java文件位置處進入控制臺,在控制臺輸入Java + 文件名 < 指定txt文件(要讀的文件)
如下圖即為要輸出的所讀入的數據的前十項。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。