
我是android的新手,在读书时无法理解循环中新分配的原因.在循环之前制作一次还不够吗?
fileinputStream fIn = openfileinput("textfile.txt"); inputStreamReader isr = new inputStreamReader(fIn); char[] inputBuffer = new char[READ_BLOCK_SIZE]; String s = ""; int charRead; while ((charRead = isr.read(inputBuffer))>0) { //---convert the chars to a String--- String readString = String.copyValueOf(inputBuffer, 0, charRead); s += readString; inputBuffer = new char[READ_BLOCK_SIZE]; }解决方法:
仅分配一次缓冲区就足够了,因此您只需删除循环内的分配,它就可以正常工作.
还有另一件事…该代码的性能真的很差,因为它在循环中使用了字符串连接.您应该使用StringBuilder.append()代替s = readString.
附言我建议您选择另一本书,因为这本书在如此简单的代码中有太多错误.
总结以上是内存溢出为你收集整理的java-android从文件读取全部内容,希望文章能够帮你解决java-android从文件读取所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)