问题描述
- java中如何将输出的结果写入到文件和显示在屏幕
-
有一个1-50的数组,每次随即不重复抽取7个数,取7次,将这49个数写入到文件,剩下那个数显示在屏幕,程序应该怎么写,求大神赐教
解决方案
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Demo {
public static Random ran = new Random();
public static void main(String[] args) {
try {
solution();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//获取50个随机数
public static List<Integer> test() {
List<Integer> arr = new ArrayList<Integer>();
for (int i = 0; i < 50; i++) {
arr.add(i+1);
}
return arr;
}
//逻辑处理
public static void solution() throws Exception{
List<Integer> res = new ArrayList<Integer>();
List<Integer> list = test();
for (int i = 0; i < 7; i++) {
for(int j = 0; j< 7;j++){
int a = ran.nextInt(list.size());
res.add(list.get(a));
list.remove(list.get(a));
}
}
write2Txt(res.toString());//写到文本
System.out.println("50个数字剩余的最后一个数字="+list.get(0));//输出到控制台
}
//字符串写出到文本
public static void write2Txt(String str) throws Exception{
FileWriter fw = null;
String path = "C:\Users\db2admin\Desktop\txt.txt";
File f = new File(path);
try {
if (!f.exists()) {
f.createNewFile();
}
fw = new FileWriter(f);
BufferedWriter out = new BufferedWriter(fw);
// FileOutputStream fos = new FileOutputStream(f);
// OutputStreamWriter out = new OutputStreamWriter(fos, "UTF-8");
out.write(str.toString());
out.close();
System.out.println("===========写入文本成功========");
} catch (IOException e) {
e.printStackTrace();
}
}
}
解决方案二:
1、A数组50个数字取7*7=49个全部存到数组B中,通过IO把B流放到文件即可。
2、A数组剩余一个数字,syso到console即可。
3、A被取走的数记得从A中remove掉,B存放每次取得数。
祝你好运~
时间: 2024-10-23 13:16:52