<分区>
如何使用 Java Swing 实现管道连接器,例如 Yahoo 管道。 或者就此而言,Java Swing 中的任何其他类型的连接。
<分区>
如何使用 Java Swing 实现管道连接器,例如 Yahoo 管道。 或者就此而言,Java Swing 中的任何其他类型的连接。
最佳答案
下面是在 java 中使用 PipedReader
和 PipedWriter
的例子:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PipedReader;
import java.io.PipedWriter;
/**
* @date 1st May, 2011
* @author sanju.org
*
* To demonstrate the use of piped character streams.
* Example program for piped character stream in java.
*
*/
public class PipedReaderExample {
public static void main(String args[]) throws IOException{
PipedReader reader = new PipedReader();
PipedWriter writer = new PipedWriter(reader);
Thread readerThread = new Thread(new ReaderThread(writer));
Thread writerThread = new Thread(new WriterThread(reader));
readerThread.start();
writerThread.start();
}
}
class ReaderThread implements Runnable{
PipedWriter writer;
public ReaderThread(PipedWriter writer){
this.writer = writer;
}
public void run() {
InputStreamReader streamReader = new InputStreamReader(System.in);
BufferedReader bufferedReader = new BufferedReader(streamReader);
try {
while (true) {
//sample implementation reading from console
//real implementation can be reading from a socket or a file
//or from server side code
String line = bufferedReader.readLine();
writer.write(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class WriterThread implements Runnable{
PipedReader reader;
public WriterThread(PipedReader reader){
this.reader = reader;
}
public void run() {
while(true){
try {
char c;
while( (c = (char)reader.read()) != -1){
//write your business logic here
//could be writing into a file
//could be processing the date
System.out.println(c);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
关于将 yahoo 与 PipedReader/Writer
类一起使用,我想您会阅读他们的 API 以连接到 url 等
这是与 PipedReader
和 PipedWriter
(教程和信息的组合)相关的其他链接列表,可能会有帮助:
至于 Swing 方面,要显示从管道接收到的数据,您需要使用 TextComponent
,例如以下之一:
每个都有一个 setText(...)
可以让你设置它们的内容
引用:
关于java - 使用 Java Swing 的管道连接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13038812/