導航:首頁 > 數據行情 > java8多線程股票數據下載

java8多線程股票數據下載

發布時間:2023-01-01 05:42:23

1. 開發炒股軟體,從哪裡獲得股票數據

行情數據源在上交所和深交所。需要購買。而且很貴。

象我們平常看到行情,是券商營業部所買,我們連到他們伺服器,而接收到數據。

P2P數據介面使用說明(1)2009-03-18 08:58介面使用說明:
1. 壓縮包包含四個文件,分別為P2P.exe,P2P.CFG,zlib.dll和使用說明.txt,可以解壓到任意盤任意目錄下使用。
2. 支持的行情分析軟體有:
(1) 分析家2006,2005等,要求分析家主窗口標題最前面的幾個字是"分析家 -",是否是破解版關系不大,最好是下載分析家官方網站的正版分析家,網址是http://www.fxj.com.cn,分析家其他版本號是否支持,我也沒全做試驗。
(2) 飛狐交易師,支持飛狐交易師,要求飛狐交易師主窗口標題最前面的幾個字是"飛狐交易師"或"證券分析師",是否是破解版關系不大,最好是支持正版,用正版的。
(3) 大智慧新一代,要求大智慧主窗口標題最前面的幾個字是"大智慧Level" 支持的版本號有 09.0226,08.0907,08.0801,07.0205 共四個。
註:如果分析軟體的窗口標題不符合上面說的,則分析軟體無法接收數據。以上三個分析軟體最好都是正版的,只要下載正版的軟體,安裝後,無需做任何修改即可使用。介面再次說明一下,介面中的四個文件解壓到任意目錄下使用都可以,而無需解壓到某個分析軟體的某個目錄下,或替代某個分析軟體的某個文件。介面完全是綠色的,無需安裝,也不會在注冊表中留下任何信息。
3. 每天9:15分以後用行情軟體中的數據管理功能先清除當天的行情數據,然後把右下角「發送數據」發送數據前面的鉤選上。
4. 如果不能在開盤前打開該軟體,比如10點半才打開,那麼該介面會自動補充10點半之前的行情數據,為了能夠盡快的把前面的數據補充完畢,請把速度調節到100以上。但如果是飛狐,則把該值調低一些,否則飛狐會來不及處理數據,把大量的數據放到內存中,造成飛狐使用內存越來越大,最後由於內存耗完造成飛狐或介面非法退出。大智慧和分析家則不存在這個問題。
5. 收盤後,該介面具有白天行情的回放功能,回放前,最好先清除行情軟體中當天的行情數據。
6. 該介面由於是P2P接收數據,因此數據接收需要種子,只有和別的種子連上了,你就能接收數據了,你至少要和一個種子連上,當然,你連上別的種子後,你也就能稱為種子了,你也就能為別的人提供數據服務功能了。
7. 兩個人要連接成功,最好兩個人中有一個人的IP地址是公網地址,如果兩個全是內網地址則相互無法直接聯通,必須藉助第三方才能聯通,該方法這里不再介紹了。
8. 如果網路情況比較良好,則行情數據的延時一般不會大於0.5秒。
9. 介面的P2P連接信息中的欄位說明
(1). 遠程完成--為該IP接收到完整數據包的個數。
(2). 遠程請求--為該IP請求你發送的數據包序號。
(3). 本機請求--為本機請求遠程發送數據包序號。
(4). 請求返回--遠程響應本機請求的次數。

2. java如何實現基於http和ftp多線程下載工具...

要訪問網路資源就要去了解你要訪問的網路資源所使用的協議。一般來說我們所使用的協議都是公開式的協議,比如http協議,它在數據的前面部分先設置一些信息來說明它所發送的數據的大小,文件類型等等。而多線程的實現原理就是先從http協議中獲取要下載的資源的資源大小,然後再分多個線程從不同的起點跟終點來分段下載資源。ftp資源的道理也是一樣。當然我並不是網路方面的專家,對網路我也不懂。以後只是我個人見解。
以下是給你找的一個java實現的http多線程下載。你看看吧
http://shazi.javaeye.com/blog/99132

3. 用java語言可以實時獲取股票數據。我想知道能否用c語言來讀取新浪股票信息呢具體怎麼實現,謝謝。

你好,可以給你些參考,資金流向,風控等要注意。其他內容還有很多。股市方面問題都可以問的。婦道人家

4. java 多線程存儲資料庫

以mysql為資料庫寫的一個粗陋的demo,你參考一下,希望不會因為代碼過多被網路吞了——


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class Test {

public static void main(String[] args) {
allotThread();
}

/**
* 將100條數據分成10份並啟動10個線程分別操作
*/
public static void allotThread() {
List<String[]> datas = buildDatas();
for (int i=0; i<100; i+=10) {
List<String[]> tenDatas = datas.subList(i, i + 10);
insertData(tenDatas);
}
}

/**
* 創建100條模擬數據
* @return
*/
public static List<String[]> buildDatas() {
List<String[]> datas = new ArrayList<String[]>();
for (int i=0; i<100; i++) {
String[] data = {"id " + i, "name " + i};
datas.add(data);
}
return datas;
}

/**
* 啟動線程進行數據插入操作
* @param tenDatas
*/
public static void insertData(final List<String[]> tenDatas) {
new Thread(new Runnable() {
public void run() {
String sql = "insert into testtable (id, name) values (?, ?)";
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = getConnection();
conn.setAutoCommit(false);
pstmt = getPstmt(conn, sql);
for (String[] data : tenDatas) {
pstmt.setString(1, data[0]);
pstmt.setString(2, data[1]);
pstmt.addBatch();
}
pstmt.executeBatch();
conn.commit();
conn.setAutoCommit(true);
} catch (SQLException e) {
e.printStackTrace();
rollback(conn);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
close(pstmt);
close(conn);
}
}
}).start();
}

public static Connection getConnection() throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
String dbUrl = "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8";
Connection conn = DriverManager.getConnection(dbUrl, "root", "tooeasy");
return conn;
}

public static PreparedStatement getPstmt(Connection conn, String sql) throws SQLException, ClassNotFoundException {
PreparedStatement pstmt = conn.prepareStatement(sql);
return pstmt;
}

public static void rollback(Connection conn) {
try {
if (null != conn) {
conn.rollback();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void close(Connection conn) {
try {
if (null != conn) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void close(PreparedStatement pstmt) {
try {
if (null != pstmt) {
pstmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void close(ResultSet rs) {
try {
if (null != rs) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}

5. 請問怎樣用Java獲取股票行情歷史數據新浪、搜狐、百度財經都可以......

publicclassStockConnection{
publicstaticvoidmain(String[]args){
URLur=null;
try{
//搜狐股票行情歷史介面
// ur=newURL("http://q.stock.sohu.com/hisHq?code=cn_300228&start=20130930&end=20131231&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp");
//新浪股票行情歷史介面
ur=newURL("http://biz.finance.sina.com.cn/stock/flash_hq/kline_data.php?&rand=random(10000)&symbol=sh600000&end_date=20150809&begin_date=20000101&type=plain");
HttpURLConnectionuc=(HttpURLConnection)ur.openConnection();
BufferedReaderreader=newBufferedReader(newInputStreamReader(ur.openStream(),"GBK"));
Stringline;
while((line=reader.readLine())!=null){
System.out.println(line);
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}

6. 使用java編寫一個多線程下載器,需要在URL欄中輸入網址,然後通過網址下載。該怎麼實現,求源代碼

swing做前台界面。後台使用java.net中的HTTPConnection下載就OK。下載可以用getInputStream()獲取數據,然後寫入文件。只提供思路,無代碼。不搞java好多年……

7. Java如何實現多線程傳輸文件,就像迅雷下載一樣,開十多個線程分段傳送位元組流

程序分Server和Client

伺服器端打開偵聽的埠,一有客戶端連接就創建兩個新的線程來負責這個連接

一個負責客戶端發送的信息(ClientMsgCollectThread 類),

另一個負責通過該Socket發送數據(ServerMsgSendThread )

Server.java代碼如下:

/*
* 創建日期 2009-3-7
*
* TODO 要更改此生成的文件的模板,請轉至
* 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板
*/
package faue.MutiUser;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**
* 伺服器端
*
* @author Faue
*/
public class Server extends ServerSocket {

private static final int SERVER_PORT = 10000;

/**
* 構造方法,用於實現連接的監聽
*
* @throws IOException
*/
public Server() throws IOException {
super(SERVER_PORT);

try {
while (true) {
Socket socket = super.accept();

new Thread(new ClientMsgCollectThread(socket), "getAndShow"
+ socket.getPort()).start();
new Thread(new ServerMsgSendThread(socket), "send"
+ socket.getPort()).start();

}
} catch (IOException e) {
e.printStackTrace();
}

}

public static void main(String[] args) throws IOException {
new Server();
}

/**
* 該類用於創建接收客戶端發來的信息並顯示的線程
*
* @author Faue
* @version 1.0.0
*/
class ClientMsgCollectThread implements Runnable {

private Socket client;

private BufferedReader in;

private StringBuffer inputStringBuffer = new StringBuffer("Hello");

/**
* 得到Socket的輸入流
*
* @param s
* @throws IOException
*/
public ClientMsgCollectThread(Socket s) throws IOException {
client = s;

in = new BufferedReader(new InputStreamReader(client
.getInputStream(), "GBK"));
}

public void run() {
try {

while (!client.isClosed()) {
inputStringBuffer.delete(0, inputStringBuffer.length());
inputStringBuffer.append(in.readLine());

System.out.println(getMsg(inputStringBuffer.toString()));
}
} catch (IOException e) {
//e.printStackTrace();
System.out.println(client.toString() + " is closed!");

}
}

/**
* 構造顯示的字元串
*
* @param line
* @return
*/
private String getMsg(String line) {
return client.toString() + " says:" + line;
}

}

/**
* 該類用於創建發送數據的線程
*
* @author Faue
* @version 1.0.0
*/
class ServerMsgSendThread implements Runnable {

private Socket client;

private PrintWriter out;

private BufferedReader keyboardInput;

private StringBuffer outputStringBuffer = new StringBuffer("Hello");

/**
* 得到鍵盤的輸入流
*
* @param s
* @throws IOException
*/
public ServerMsgSendThread(Socket s) throws IOException {
client = s;

out = new PrintWriter(client.getOutputStream(), true);
keyboardInput = new BufferedReader(new InputStreamReader(System.in));

}

public void run() {
try {

while (!client.isClosed()) {
outputStringBuffer.delete(0, outputStringBuffer.length());
outputStringBuffer.append(keyboardInput.readLine());

out.println(outputStringBuffer.toString());
}
} catch (IOException e) {
//e.printStackTrace();
System.out.println(client.toString() + " is closed!");

}
}

}

}

客戶端:

實現基於IP地址的連接,連接後也創建兩個線程來實現信息的發送和接收

/*
* 創建日期 2009-3-7
*
*/
package faue.MutiUser;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

/**
* 客戶端
*
* @author Faue
*/
public class Client {

private Socket mySocket;

/**
* 創建線程的構造方法
*
* @param IP
* @throws IOException
*/
public Client(String IP) throws IOException {

try {
mySocket = new Socket(IP, 10000);
new Thread(new ServerMsgCollectThread(mySocket), "getAndShow"
+ mySocket.getPort()).start();
new Thread(new ClientMsgSendThread(mySocket), "send"
+ mySocket.getPort()).start();

} catch (IOException e) {
//e.printStackTrace();
System.out.println("Server.IP:" + IP
+ " port:10000 can not be Connected");
}
}

public static void main(String[] args) throws IOException {
try {
new Client(args[0]);
} catch (Exception e) {
System.out.println("輸入的IP地址錯誤");
}
}

/**
* 該類用於創建接收服務端發來的信息並顯示的線程
*
* @author Faue
* @version 1.0.0
*/
class ServerMsgCollectThread implements Runnable {

private Socket client;

private BufferedReader in;

private StringBuffer inputStringBuffer = new StringBuffer("Hello");

/**
* 得到Socket的輸入流
*
* @param s
* @throws IOException
*/
public ServerMsgCollectThread(Socket s) throws IOException {
client = s;

in = new BufferedReader(new InputStreamReader(client
.getInputStream(), "GBK"));
}

public void run() {
try {

while (!client.isClosed()) {
inputStringBuffer.delete(0, inputStringBuffer.length());
inputStringBuffer.append(in.readLine());
System.out.println(getMsg(inputStringBuffer.toString()));
}
} catch (IOException e) {
//e.printStackTrace();
System.out.println(client.toString() + " is closed!");
System.exit(0);
}
}

/**
* 構造輸入字元串
*
* @param line
* @return
*/
private String getMsg(String line) {
return client.toString() + " says:" + line;
}

}

/**
* 該類用於創建發送數據的線程
*
* @author Faue
* @version 1.0.0
*/
class ClientMsgSendThread implements Runnable {

private Socket client;

private PrintWriter out;

private BufferedReader keyboardInput;

private StringBuffer outputStringBuffer = new StringBuffer("Hello");

/**
* 得到鍵盤的輸入流
*
* @param s
* @throws IOException
*/
public ClientMsgSendThread(Socket s) throws IOException {
client = s;

out = new PrintWriter(client.getOutputStream(), true);
keyboardInput = new BufferedReader(new InputStreamReader(System.in));

}

public void run() {
try {

while (!client.isClosed()) {
outputStringBuffer.delete(0, outputStringBuffer.length());
outputStringBuffer.append(keyboardInput.readLine());

out.println(outputStringBuffer.toString());
}
out.println("--- See you, bye! ---");
} catch (IOException e) {
//e.printStackTrace();
System.out.println(client.toString() + " is closed!");
System.exit(0);
}
}

}

}

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

vaela

閱讀全文

與java8多線程股票數據下載相關的資料

熱點內容
股票資金流入看什麼 瀏覽:806
科創50指數ETf投資哪些股票 瀏覽:473
林園股市最新股票 瀏覽:525
國務院國有資產監督管理委員會股票 瀏覽:132
宜信最新股票價格 瀏覽:144
亞盛股票走勢 瀏覽:450
工業設計軟體概念股票 瀏覽:971
中國股票最高的是什麼股 瀏覽:274
如何利用股東數據分析股票 瀏覽:155
同濟科技股票配股價 瀏覽:219
股票短期融資債券到期兌付是好是壞 瀏覽:597
股票交通銀行000001 瀏覽:811
債券比股票 瀏覽:518
中國軟體這個股票怎麼樣 瀏覽:545
股票里的特殊賬戶 瀏覽:426
最准確的股票數據網 瀏覽:30
網商銀行的股票代碼 瀏覽:393
行業互動對股票市場有什麼影響 瀏覽:555
必需品投資組合股票行情分析 瀏覽:621
股票看盤重要時間點 瀏覽:741