日志五:文件输入和随机数



【导语】
今天是老师检查作业的一天,看看自己写的代码,至今还没实现老师要求的那个猜猜看的功能,我现在还没找到突破口,尽管我已经问老师了,老师也告诉了我,因为基础不怎么好,所以都不会怎么运用那些关键的东西,我在网上找了一个早上,关于如何实现图片和文字的关联,我至今也还没有找到答案,不过还是有点收获的,我最起码知道了要运用文件读取的功能和数组的功能,之后再用随机数将其显示在Lable上。我在网上百度到的想法,那个是关于如何将抽奖的数字显示出来,我感觉这两个关系挺像的,我就想试着用一下它的方法,看可行不,结果我却又卡在了随机不重复出现一个数那里,我现在还在求救老师,等待老师给我答复。


【目的】
1.随机不重复的抽取数字
2.通过数字和文件信息相关联


【目标】
1.实现单张图片的随机显示
2.图片与信息相关联


【方法与步骤】
1.用io读取这个文件
1).InputStream是所有输入流的基类,FileInputStream是它的一个实现类,允许程序读取机器上面的文件,FileInputstream,FileOutputstream分别是由抽象类Inputstream和Outputstream继承来的,他们的源和目的地是以字节流的方式读取文件,键盘,鼠标,或者显示器.。
2).byteArrayInputStream,byteArrayOutputStream的源和目的地是字节数组,即内存。FileInputstream的构造函数是FileInputstream(String filename)这样的话Fileinputstream流的源就是名字为filename的文件,而byteArrayInputStream的构造函数是byteArrayInputStream(byte []buf),这样的话byteArrayInputStream流的源就是名字为buf的字节数组。


2. 读进去以后放到一个ArrayList里  然后用过size()方法得到ArrayList的长度
1).ArrayList是javaAPI中自带的java.util.ArrayList,1.语法:add()是添加一个新的元素,remove()删除一个元素,size()获得ArrayList的长度。ArrayList的下标是从0开始。
2).再看在Application中利用swing包,构建带有图片的窗体
3).也可以自己写一个窗口类,然后重载其中的paint方法


3. 随机不重复的抽取数字
1) . 调用java.lang下面Math类中的random()方法产生随机数
2). 调用java.util下面Random类,此类的实例用于生成伪随机数流,产生一个随机整数,则调用该类的nextInt()方法其中Random rand = new Random()是创建一个新随机数生成器;rand.nextInt(int n)是从此随机数生成器的序列中取出的、在 0(包括)和指定值n(不包括)之间均匀分布的 int值。


4. 通过这个数字获得ArrayList中的关联的文件信息,把这信息输出到Lable。
a.getParent();获取装a 组件,a.getComponents();获取a装着的组件。比如由button.getParent()可以获取到panel,panel.getComponents()可以获取到button和label。


【实验代码】

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Baidu {
	static int NUM=0;


	public static void main(String[] args) throws IOException {
    	FileInputStream fileInputStream = new FileInputStream("E:/photos/丁又专2C#实用开发技术-信管1121-1122.txt");
    	List arrayList = new ArrayList(); 
    	BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
    	String str ="";
    	while(bufferedReader.ready()){
    	str = bufferedReader.readLine();
        arrayList.add(str);
            int length = arrayList.size();
            
            Integer random = (int) (length * Math.random());
            System.out.println(arrayList.get(random));
        }
    }
}



【实验结果】



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值