2012-09-28 81 views
2

我想在一個飛鏢服務器應用程序讀取從控制檯不同的數據,如:從DART讀取多個輸入控制檯

用的名字:用戶輸入和輸入
名字:用戶輸入和輸入
年齡:用戶輸入並進入

下面的代碼工作,但僅在1個輸入項:

var stream = new StringInputStream(stdin); 
stream.onData =() { 
    voornaam = stream.readLine(); 
}; 

但我不能讓它爲多個項目工作。 Dart有沒有簡單的方法來做到這一點?

謝謝!

回答

1

由於您使用的是StringInputStream而不僅僅是標準InputStream,並且您正在閱讀文本。除非有特殊原因,否則我會建議使用onLine處理程序而不是onData。數據上基本上會嘗試「流」信息,因爲它立即被稱爲不在新線上。嘗試類似如下(注意,不是完整的代碼,缺少適當的錯誤處理等)

#import('dart:io'); 

main() { 
    var stream = new StringInputStream(stdin); 
    stream.onLine =() { 
    var str = stream.readLine().trim(); 
    print(str.toUpperCase()); 
    if(str == 'EXIT') exit(0); 
    }; 
} 

另外一個音符指出的是,如果你是數據流,並使用onData處理程序,則建議然後您使用read方法,而不是readLine方法來檢索您的內容,同樣由於onData的性質並未等待被調用之前接收到全部文本行。