Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用stringbuilder和bufferedreader读取多个链接_Java_Android_Bufferedreader_Stringbuilder_Delimiter - Fatal编程技术网

Java 使用stringbuilder和bufferedreader读取多个链接

Java 使用stringbuilder和bufferedreader读取多个链接,java,android,bufferedreader,stringbuilder,delimiter,Java,Android,Bufferedreader,Stringbuilder,Delimiter,我试图在下面的代码中从xml源txt文件中读取多个rss链接。我正在使用作为分隔符。从debug开始,它似乎将所有链接发送到RSS\u LINK,这显然不起作用 StringBuilder rsslink = new StringBuilder(); InputStream is = getResources().openRawResource(R.raw.xmlsource); BufferedReader br = new BufferedReader(new InputStreamRead

我试图在下面的代码中从xml源txt文件中读取多个rss链接。我正在使用
作为分隔符。从debug开始,它似乎将所有链接发送到
RSS\u LINK
,这显然不起作用

StringBuilder rsslink = new StringBuilder();
InputStream is = getResources().openRawResource(R.raw.xmlsource);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;

try {
    while ((line = br.readLine()) != null) 
    {
       rsslink.append(line) ;
    }
    String [] arr = rsslink.toString().split(";"); 
    for (int i = 0; i < arr.length; i++)
        {
        }
} 
catch (IOException e) 
{
    e.printStackTrace();
}
String RSS_LINK = rsslink.toString();

Log.d(Constants.TAG, "Service started");
List<RssItem> rssItems = null;
try 
{
    XMLRssParser parser = new XMLRssParser();
    rssItems = parser.parse(getInputStream(RSS_LINK));
} 
catch (XmlPullParserException e) 
{
    Log.w(e.getMessage(), e);
} 
catch (IOException e) 
{
    Log.w(e.getMessage(), e);
}
Bundle bundle = new Bundle();
bundle.putSerializable(ITEMS, (Serializable) rssItems);
ResultReceiver receiver = intent.getParcelableExtra(RECEIVER);
receiver.send(0, bundle);
}
StringBuilder rsslink=new StringBuilder();
InputStream is=getResources().openRawResource(R.raw.xmlsource);
BufferedReader br=新的BufferedReader(新的InputStreamReader(is));
字符串行=null;
试一试{
而((line=br.readLine())!=null)
{
rsslink.append(行);
}
字符串[]arr=rsslink.toString().split(“;”);
对于(int i=0;i
新代码

protected void onHandleIntent(Intent intent) 
{   
    StringBuilder rsslink = new StringBuilder();
    InputStream is = getResources().openRawResource(R.raw.xmlsource);
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    String line = null;

    try {
        while ((line = br.readLine()) != null) 
        {
           rsslink.append(line) ;
        }
        String [] arr = rsslink.toString().split(";"); 
        for (int i = 0; i < arr.length; i++)
        {
            String RssLink = arr[i];

            Log.d(Constants.TAG, "Service started");
            List<RssItem> rssItems = null;
            try 
            {
                XMLRssParser parser = new XMLRssParser();
                rssItems = parser.parse(getInputStream(RssLink));
            } 
            catch (XmlPullParserException e) 
            {
                Log.w(e.getMessage(), e);
            } 
            catch (IOException e) 
            {
                Log.w(e.getMessage(), e);
            }
            Bundle bundle = new Bundle();
            bundle.putSerializable(ITEMS, (Serializable) rssItems);
            ResultReceiver receiver = intent.getParcelableExtra(RECEIVER);
            receiver.send(0, bundle);
        }
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    }
protectedvoid onHandleIntent(意图)
{   
StringBuilder rsslink=新的StringBuilder();
InputStream is=getResources().openRawResource(R.raw.xmlsource);
BufferedReader br=新的BufferedReader(新的InputStreamReader(is));
字符串行=null;
试一试{
而((line=br.readLine())!=null)
{
rsslink.append(行);
}
字符串[]arr=rsslink.toString().split(“;”);
对于(int i=0;i
您拆分了
rsslink
,但没有使用生成的
arr
,而是继续使用
rsslink
,它仍然具有所有链接和
组合

您需要将所有rss处理(解析等)放入循环:

String [] arr = rsslink.toString().split(";"); 
for (int i = 0; i < arr.length; i++)
    {
        // HERE IS THE PLACE TO HANDLE a single RSS Link. arr contains the single link
    }
String[]arr=rsslink.toString().split(“;”);
对于(int i=0;i
谢谢,我通过将处理部分移动到for循环中,然后发送
RSS\u LINK=arr[i]使它起到了一定的作用
我现在面临的问题是,它在链接之间循环,并在返回到循环顶部时删除上一个链接,因此它只显示循环中的链接内容。感谢您提供新代码。它看起来像这样:
ResultReceiver receiver=intent.getParcelableExtra(receiver);
始终引用接收方的同一实例和调用
发送(0,bundle)的同一实例
因此,以前会取消或覆盖循环中的发送。但是,我的知识到此为止。您可以尝试确保始终获得新的接收方实例,或者-您尝试在发送下一个请求之前等待结果-或者-您再次在stackoverflow.com中询问此特定问题。希望您能够至少在这一点上是有帮助的:-)谢谢你的帮助..不管怎样,我都会选择这个作为答案