0
我有下面的代碼,在一個Java客戶端類(它的這個KnockKnock client/server pair):如何修改此客戶端類以從字符串數組(而非標準輸入)讀取輸入?
try {
kkSocket = new Socket("localhost", 4444);
out = new PrintWriter(kkSocket.getOutputStream(), true);
in = KKJokes[0]; //new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));
// in2 = new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));
}
我想擁有它自動從String數組讀取(包含所有這些預定義的笑話),是這樣的:
String KKJokes[] = {"Who's there?", "Turnip who?",
"y", "Who's there?", "Who's there?", "blah" };
/* more cod */
try {
kkSocket = new Socket("localhost", 4444);
out = new PrintWriter(kkSocket.getOutputStream(), true);
for (int i = 0; i< KKJokes.length; i++) {
in = new BufferedReader(new InputStreamReader(KKJokes[i])) ;
}
}
但是,這並不工作,它給:
KnockKnockClientRedux.java:33: non-static variable KKJokes cannot be referenced from a static context
for (int i = 0; i< KKJokes.length; i++) {
^KnockKnockClientRedux.java:34: non-static variable KKJokes cannot be referenced from a static context
in = new BufferedReader(new InputStreamReader(KKJokes[i])) ; //new Buf feredReader(new InputStreamReader(kkSocket.getInputStream()));
^KnockKnockClientRedux.java:34: cannot find symbol symbol : constructor InputStreamReader(java.lang.String) location: class java.io.InputStreamReader
in = new BufferedReader(new InputStreamReader(KKJokes[i])) ; //new Buf feredReader(new InputStreamReader(kkSocket.getInputStream()));
編輯:那豈不是更容易剛剛從讀 文本文件?也許我會在文本文件中垂直列出所有的KnockNock笑話行。這樣,FileReader
代替kkSocket.getInputStream()
代碼似乎更容易
這修正了它的一部分,感謝:用
第二個問題可以嘗試用迎刃而解!我仍然有'KnockKnockClientRedux.java:34:找不到符號符號:構造函數InputStreamReader(java.lang.String)location' tho – Coffee
試一下: new InputStreamReader(new ByteArrayInputStream(KKJokes [i] .getBytes()) – gfelisberto