用重定向方法从文件中读入或写入数据
1.问题描述
先产生10000个随机数,每十个一行,放入文件中。(用重定向方法)
用重定向方法,从文件中读入10000个数字,打印出前十名。(不许调用排序方法)
2.程序如下:
2.1 写入
java" id="highlighter_86113">
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文件(要读的文件)
如下图即为要输出的所读入的数据的前十项。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。