<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br></pre></td><td class="code"><pre><span class="line">Flowable.create((FlowableOnSubscribe<String>) e -> {</span><br><span class="line"> try {</span><br><span class="line">// URL url=getClass().getResource("test.txt");</span><br><span class="line">// Log.e(TAG,"url="+url);</span><br><span class="line">// FileReader reader =new FileReader(url.getFile());</span><br><span class="line">// FileReader reader =new FileReader("file:///android_asset/test.txt");</span><br><span class="line"> InputStream inputStream = getResources().getAssets().open("test.txt");</span><br><span class="line"> InputStreamReader inputStreamReader = new InputStreamReader(inputStream);</span><br><span class="line"> BufferedReader bufferedReader = new BufferedReader(inputStreamReader);</span><br><span class="line"> String str;</span><br><span class="line"> while ((str = bufferedReader.readLine()) != null && !e.isCancelled()) {</span><br><span class="line"> while (e.requested() == 0) {</span><br><span class="line"> if (e.isCancelled()) break;</span><br><span class="line"> }</span><br><span class="line"> e.onNext(str);</span><br><span class="line"> }</span><br><span class="line"> bufferedReader.close();</span><br><span class="line"> inputStreamReader.close();</span><br><span class="line"> inputStream.close();</span><br><span class="line"> e.onComplete();</span><br><span class="line"> } catch (IOException e1) {</span><br><span class="line"> e1.printStackTrace();</span><br><span class="line"> }</span><br><span class="line"> }, BackpressureStrategy.ERROR)</span><br><span class="line"> .subscribeOn(Schedulers.io())</span><br><span class="line"> .observeOn(Schedulers.newThread())</span><br><span class="line"> .subscribe(new Subscriber<String>() {</span><br><span class="line"> Subscription mSubscription;</span><br><span class="line"></span><br><span class="line"> @Override</span><br><span class="line"> public void onSubscribe(Subscription s) {</span><br><span class="line"> mSubscription = s;</span><br><span class="line"> s.request(1);</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> @Override</span><br><span class="line"> public void onNext(String s) {</span><br><span class="line"> Log.e(TAG, "onNext=" + s);</span><br><span class="line"> try {</span><br><span class="line"> Thread.sleep(2000);</span><br><span class="line"> mSubscription.request(1);</span><br><span class="line"> } catch (InterruptedException e) {</span><br><span class="line"> e.printStackTrace();</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> @Override</span><br><span class="line"> public void onError(Throwable t) {</span><br><span class="line"> System.out.println(t);</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> @Override</span><br><span class="line"> public void onComplete() {</span><br><span class="line"></span><br><span class="line"> }</span><br><span class="line"> });</span><br><span class="line"> </span><br><span class="line">E/MainActivity: onNext=AAAAAAAAAAAA</span><br><span class="line">E/MainActivity: onNext=BBBBBBBB</span><br><span class="line">E/MainActivity: onNext=CCCCCCC</span><br><span class="line">E/MainActivity: onNext=DDDDD</span><br><span class="line">E/MainActivity: onNext=EE</span><br><span class="line">E/MainActivity: onNext=F</span><br></pre></td></tr></table></figure>
0 commit comments