2016-04-14 107 views
-1

我創建了一個遊戲,現在我想添加一個全球高分。我想將高分保存在我的服務器上。我認爲最簡單的方法是在我的服務器上覆蓋一個存儲分數和頂級球員名字的文本文件。我怎樣才能做到這一點?遊戲未在我的服務器上運行!它在客戶端運行。什麼是最簡單的方法來保存服務器上的字符串

+1

所以問題是你如何寫一個字符串到文件?你已經研究過了嗎? – Thomas

+0

你也可以創建一個類'Highscore'並使其成爲'Serializable'。或使用數據庫。 – SomeJavaGuy

+0

我知道如何寫一個文件,但我不知道如何將它存儲在服務器上。 – unrealwombat

回答

0

下面是使用java.nio.file.Files類寫一個字符串到文件的例子:

try { 
    String hightscore = "MyString"; 
    Files.write(new File("D:/temp/file.txt").toPath(), hightscore.getBytes()); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

我需要將分數保存在服務器上。 – unrealwombat

+0

那麼有很多答案,你可以與服務器發佈的web服務進行通信,通過FTP上傳hightscore文件,也許你的服務器正在運行一個DBMS,你可以連接到.... –

0

您可以將其保存爲一個平面文件一樣flavio.donze做,或者你可以使用一個數據庫。

因此,如果要將其保存到服務器或其他位置,通常沒有相關性。路徑決定位置。

如果要將客戶端的分數上傳到服務器,可以使用多種解決方案。

F.e.根據RMI或Web服務調用添加

+0

沒有遊戲是沒有在服務器上執行。它在用戶的本地機器上執行。 – unrealwombat

+0

嘗試使用類似REST的web服務 my-server-path/add/score |把 這樣簡單的事情 – nmanh

0

您可以僱傭一個簡單的託管PHP/MySql並將分數保存到數據庫中。

try { 
    URL url = new URL("http://exemple.com/saveScore.php"); 

    InputStream is = url.openStream(); 

    Scanner scanner = new Scanner(is); 
    scanner.useDelimiter("\\A"); 

    String response = scanner.hasNext() ? scanner.next() : null; 

    if (response == "ok") { 
     System.out.println("Saved!"); 
    } 
} 
catch (IOException e) { 
    e.printStackTrace(); 
} 

saveScore.php,保存後,只需打印OK的。

<?php 

// DB OPERATIONS 

echo "ok"; 
exit;