⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datareader.java

📁 一份很好的股票曲线文档
💻 JAVA
字号:
package stock;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DataReader {//读取后台数据类

    private String fileName;
    private String name = null;
    private String date = null;
    int totalDataLength = 0;//总存数据参数
    double[] data = null;
    ReaderThread rt = null;

    class ReaderThread extends Thread {//更新线程

        boolean isExit = false;//判断程序是否是推出

        public void run() {
            while (!isExit) {
                try {
                    System.out.println("Reader running...");
                    DataReader.this.updateData();
                    sleep(10*1000);//前台坐标刷新时间
                } catch (InterruptedException ex) {
                    System.out.println("Interrupted");
                }
            }
        }
    }

    public synchronized void updateData() {//更新数据
        try {
            InputStream is = getClass().getResourceAsStream(fileName + ".txt");
            System.out.println(is);
            BufferedReader br = new BufferedReader(new InputStreamReader(is));//以字符串形式读取文件
            String name = br.readLine();
            String date = br.readLine();
            int totalDataLength = Integer.parseInt(br.readLine());
            int length = Integer.parseInt(br.readLine());
            if (name.equals(this.name) &&
                    date.equals(this.date) &&
                    totalDataLength == this.totalDataLength &&
                    data != null && length == data.length) {
                return;
            }
            this.name = name;
            this.date = date;
            this.totalDataLength = totalDataLength;
            this.data = new double[length];
            for (int i = 0; i < data.length; i++) {
                data[i] = Double.parseDouble(br.readLine());
            }
            System.out.println(length);
            br.close();

        } catch (IOException ex) {
            Logger.getLogger(DataReader.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public DataReader(String name) {
        this.fileName = name;
        if (rt == null) {
            rt = new ReaderThread();
            rt.start();
        }
    }

    public synchronized void setFileName(String fileName) {//更新文件名
        this.fileName = fileName;
        rt.interrupt();//强制刷新
    }

    public int getTotalDataLength() {
        return totalDataLength;
    }

    public synchronized String getDate() {
        return date;
    }

    public synchronized String getFileName() {
        return fileName;
    }

    public synchronized String getName() {
        return name;
    }

    public synchronized double[] getData() {
        return this.data;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -