Tag: stream

Twitter Stream API用于获取用户的推文

我正在使用twitter流API来获取用户的推文。 我有用户ID列表如何从TwitterStream API获取推文列表。 我分析了以下样本 public class TwitterStreamAPI { public static void main(String[] args) { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true); cb.setOAuthConsumerKey(“xxxx”); cb.setOAuthConsumerSecret(“xxx”); cb.setOAuthAccessToken(“xxx”); cb.setOAuthAccessTokenSecret(“xxx”); TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance(); UserStreamListener listener = new UserStreamListener() { @Override public void onStatus(Status status) { System.out.println(“onStatus @” + status.getUser().getScreenName() + ” – ” + status.getText()); } @Override public void […]

使用新的BufferedReader“java.io.IOException:Stream closed”

许多人问这样的问题,但这个问题有点不同。 这是代码: public static BufferedReader reader; public static String readString() throws IOException { reader = new BufferedReader(new InputStreamReader(System.in)); String s = reader.readLine(); reader.close(); return s; } 虽然多次调用程序运行时readString方法。 第二个调用导致exception: stream closed 。 我无法理解:为什么它最终如此? 每次我们声明新的BufferedReader 。 所以stream也必须是新的。 或不? 如果没有,我应该如何组织我的程序,以便在所有调用和程序结束后关闭读者?

BufferedReader.readLine()不读取并挂起系统(等待)

BufferedReader.readLine()不读取并挂起system(wait) 。 InputStream istrm = runtimeProcess.getInputStream(); InputStreamReader istrmrdr = new InputStreamReader(istrm); BufferedReader buffrdr = new BufferedReader(istrmrdr); System.out.println(“4”); String data; String st; System.out.println(“4a”); while (!(st=buffrdr.readLine()).isEmpty()) { System.out.println(“5 in loop”); }

MediaMetaDataRetriever.setDataSource返回null

我正在尝试开发一个应用程序( 无线电流 )应用程序,我想获取该MediaMetadataRetriever API的无线电上播放的歌曲的详细信息,但是当我设置我的URL时,我收到此错误: java.lang.IllegalArgumentException位于maa.myapp.MainActivity $ PlayerTask.onPostExecute(MainActivity.java:447)上的android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:71)maa.myapp.MainActivity $ PlayerTask.onPostExecute(MainActivity。 Java的:419) 我的代码: MediaPlayer mediaPlayer; String stream = “https://plaza.one/mp3”; boolean prepared =false; boolean started =false ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mediaPlayer = new MediaPlayer(); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { AudioAttributes attribs = new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).setContentType(AudioAttributes.CONTENT_TYPE_MUSIC).build(); mediaPlayer.setAudioAttributes(attribs); } else { mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); } new PlayerTask().execute(stream); } […]

Java – 了解PrintWriter并需要刷新

好的,首先我为所有代码道歉,但我觉得太多的代码比不够好。 我正在制作一个简单的聊天客户端和编剧,特别是我正在努力。 使用代码的方式现在它将与服务器类进行交互,并且非常精细并打印我想要打印的内容。 但是,当我删除’writer.flush();’ 它会停止打印。 凭借我的理解 – 这显然是错误的 – ‘writer.println(outgoing.getText());’ 应该足够了,因为这会发送我试图发送到服务器的文本。 我理解flush会强制写入所有信息,但为什么在我写完我想写的内容时需要这样做? public class SimpleChatClientA { JTextArea incoming; JTextField outgoing; BufferedReader reader; PrintWriter writer; Socket sock; public void go(){ JFrame frame = new JFrame(“Ludicrously Simple Chat Client”); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel mainPanel = new JPanel(); incoming = new JTextArea(15,50); incoming.setLineWrap(true); incoming.setWrapStyleWord(true); incoming.setEditable(false); JScrollPane qScroller = new JScrollPane(incoming); […]

流关闭而不是重新打开 – Java

我有一个简单的’功课’,但我发现输入流的关闭有点问题。 简单来说,我必须用Java创建一个联系人’列表’应用程序,只是以正确的方式使用多态。 所以我有一个类Contact和一个子类Private(联系人)。 在这两个类中都有一个修改方法来更改变量的值。 public void modify() throws IOException { System.out.println(“Previously name: ” + name); System.out.println(“Insert new name”); try(InputStreamReader ir = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(ir) ) { name= in.readLine(); System.out.println(“You’ve changed the name to: “+ name); System.out.println(“Previously surname: ” + surname); System.out.println(“Insert new surname”); surname= in.readLine(); System.out.println(“You’ve changed the surname to: “+ […]

在JAVA中使用Lambda的AWS DynamoDB触发器

我试图在dynamodb流事件上触发用Java编写的AWS lambda函数。 亚马逊有一个相同的指南,在这里使用NodeJS http://docs.aws.amazon.com/lambda/latest/dg/wt-ddb-create-test-function.html NodeJS的测试输入(来自上面的链接)看起来像一个SNS事件,所以我尝试在Java中使用相应的SNSEvent类作为我的处理程序方法的输入。 import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.events.SNSEvent; import com.amazonaws.services.lambda.runtime.events.SNSEvent.SNSRecord; import java.util.List; public class RecomFunction { public void handler(SNSEvent event, Context context) { LambdaLogger logger = context.getLogger(); List records = event.getRecords(); if (records != null) { for (SNSRecord record : records) { if (record != null) { logger.log(“SNS record: ” + record.getSNS().getMessage()); […]

从同一个FileInputStream中读取字符串和二进制文件

我有一个文件,在开始时包含一些纯文本,最后是二进制内容。 二进制内容的大小由我读过的一条纯文本行确定。 我使用BufferedReader来读取各行,但它没有公开任何方法来引用读取字节数组。 DataInputStream不会一直读到行尾,并且不推荐使用readLine方法。 使用底层的FileInputStream读取返回空字节数组。 关于如何解决这个问题的任何建议? private DOTDataInfo parseFile(InputStream stream) throws IOException{ DOTDataInfo info = new DOTDataInfo(); BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); int binSize = 0; String line; while((line = reader.readLine()) != null){ if(line.length() == 0) break; DOTProperty prop = parseProperty(line); info.getProperties().add(prop); if(prop.getName().equals(“ContentSize”)) binSize = Integer.parseInt(prop.getValue()); } byte[] content = new byte[binSize]; stream.read(content); //Its […]

Java – 捕获System.err.println或捕获PrintStream

Java新手问题: 我需要捕获第三方组件正在写入printStream的文本。 PrintStream默认为System.err,但可以更改为另一个PrintStream。 浏览文档,我找不到一种简单的方法将PrintStream的内容定向到字符串编写器/缓冲区。 有人可以帮忙吗?

压缩和解压缩流

我发现这篇关于在JAVA中实现的简单代理服务器的文章: http://www.java2s.com/Code/Java/Network-Protocol/Asimpleproxyserver.htm 代码只是从客户端获取一些流,然后将其发送到服务器,然后从服务器获取流并将响应发送到客户端。 我想要做的是在发送之前压缩这些流,并在收到之后对其进行解压缩。 我找到了GZIPInputStream类,但我不确定如何使用它,我在互联网上找到的东西对我没有帮助。 我要么不明白这么多,要么对我来说不是一个好的解决方案。 我的想法也是如此,但我不确定它是否正常: final InputStream streamFromClient = client.getInputStream(); final OutputStream streamToClient = client.getOutputStream(); final InputStream streamFromServer = server.getInputStream(); final OutputStream streamToServer = server.getOutputStream(); InputStream gzipStream = new GZIPInputStream(streamFromClient ); try { while ((bytesRead = gzipStream.read(request)) != -1) { streamToServer.write(request, 0, bytesRead); streamToServer.flush(); } } catch (Exception e) { System.out.println(e); } 现在发送到服务器的数据应该在发送之前进行压缩(但我不确定它是否是正确的解决方案)。 […]