我在做一个项目时发现:
当我用常用的下载方法 下载xml到sd卡中 然后读取xml解析时 总是有如下异常:
但程序仍能运行 只是xml解析后的条数变少了 我觉得应该是解析过程中遇到了不能解析的字符
但检查服务器端的xml并未发现错误 (我还曾一度认为是网络不佳导致的,现在想象真是可笑的误区)
之后我检查了下载到本地sd卡的xml文件,用notepad打开后 错误发现了:
经过百度 谷歌 的各种搜素也未找到缘由
我开始认为是我的下载与写入sd 的方法有问题
但是从论坛或是文章中 看到很多下载文件与写入的方法都是这样的:
/**
* is流写入sd卡
* @param path
* @param fileName 路径+名字
* @param is
* @return
*/
public File write2SDFromIS(String path,String fileName,InputStream is){
File file = null;
OutputStream os = null;
try {
createSDDir(path);
file = createSDFile(path+fileName);
os = new FileOutputStream(file);
byte buffer[] = new byte[1024];
while(is.read(buffer) != -1){
os.write(buffer);
}
// int bufferLength = 0;
// while ( (bufferLength = is.read(buffer)) > 0 ) {
// os.write(buffer, 0, bufferLength);
// }
os.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return file;
}
http://androiddada.iteye.com/
我是个初学者 也没多想 就使用了这段代码。但经过多次测试后发现
byte buffer[] = new byte[1024];
while(is.read(buffer) != -1){
os.write(buffer);
}
这段代码导致了下载后出现NUL符(有时xml较大时 会有部分乱码 结尾不全的情况)
我换用了如下代码(注释的内容):
byte buffer[] = new byte[1024];
int bufferLength = 0;
while ( (bufferLength = is.read(buffer)) > 0 ) {
os.write(buffer, 0, bufferLength);
}
便解决了 上述问题
我是个菜鸟 如果说原因我只能猜测 可能是错误的写法每次写入固定1024的长度
而换用有bufferLength的方法write 则规定了长度 避免了不足1024的用NUL代替了吧!
因为这个问题困扰了我3天的时间 又未在网上找到相应的解决办法
为了方便和我一样的菜鸟 大家少走弯路 特写了这篇文章!
- 大小: 287.9 KB
- 大小: 117.9 KB
分享到:
相关推荐
有时候电脑中会出现 con con. nul null.的文件夹不易删除,总结了两种方法来删除,一般可以搞定,希望对大家有用;
批处理有一处bug:每打包一次会把odex文件删除掉,导致在后面的打包过程中会出现找不到:system/framework/core.odex类似的错误,因此只需要在打包完后不删除odex文件即可,找到del /f !apkx!.odex 1>nul 2>nul改为...
NULL 博文链接:https://cleaneyes.iteye.com/blog/762921
RASA FAQ数据集 nul.yaml responses.yaml
花里胡哨的代码雨 @echo off color 0a setlocal ENABLEDELAYEDEXPANSION for /l %%i in (0) do ( set "line=" for /l %%j in (1,1,80) do ( set /a Down%%j-=2 set "x=!Down%%j!...<nul )
05-27 15:35:11.487 E/AndroidRuntime( 2352): Process: com.android.systemui, PID: 2352 05-27 15:35:11.487 E/AndroidRuntime( 2352): java.lang.RuntimeException: Unable to create service ...
单独删除木马的方法:del \\.\d:\aux\com1.asp 就可以删除这个木马了 直接删除文件夹的方法:rd /q/s \\.\d:\aux 这样整个文件夹就可以删除了 建立的该文件夹的方法:md d:\aux\ md d:\nul\\ 复制木马的方法::copy...
Linux Tomcat下使用Log4j接管catalina.out 日志文件生成方式,按天分割,解决catalina.out日志文件过大问题 1、将log4j-1.2.17.jar、tomcat-juli-adapters.jar两个jar包和log4j.properties文件拷贝到 Tomcat 的 lib...
主要介绍了Android开发中ListView控件性能的一些优化方法,需要的朋友可以参考下
COLOR 0A CLS @ECHO Off Title 查询局域网内在线电脑IP :send @ECHO off&setlocal; enabledelayedexpansion ECHO 正在获取本机的IP地址,请稍等... for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -...pause>nul
ipseccmd -w REG -p "HFUT_SECU" -r "Block TCP/445" -f *+0:445:TCP -n BLOCK -x >nul ipseccmd -w REG -p "HFUT_SECU" -r "Block UDP/445" -f *+0:445:UDP -n BLOCK -x >nul ipseccmd -w REG -p "HFUT_SECU" -r ...
Vbs Unpacker 2.4.5 - by Icy_Ybk (-- 软件介绍 --) Vbs Unpacker 是 Vbs2Exe 的克星,...解决了旧版本中普遍存在的代码 NUL 截断问题 解决了旧版本部分输出文件产生的乱码问题(Unicode) 非重复,而是出新版了。
本文实例讲述了Android编程实现擦除Bitmap中某一块的方法。分享给大家供大家参考,具体如下: 以前要截取Bitmap中的图片使用的一块块的拼接,虽然可以实现,但是效率很低。想了很久,无意中看到网上的对BITMAP图片的...
"%zipdir%" a -t7z "%%i".7z "%%i\*" -r -mx=9 -m0=LZMA2 -ms=10m -mf=on -mhc=on -mmt=on >nul echo 删除目录【 %%~dpni 】 rmdir /s /q "%%~dpni" echo 备份【 %%i.7z 】 if not exist "!bk2!" md "!bk2!" ...
将世界装进口袋 华硕迷你路由器WL-330NUL.pdf
"WordPress主题:Herozh v1.6 Nul在线学习主题2022年最新版 WordPress主题/WordPress插件/html网站模板/iOS app源码/安卓app源码 每天更新上传!" ---------- 每天更新发布最新WordPress主题、HTML主题、WordPress...
@echo off pushd "%~dp0" ... List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i" pause 此注册文件执行成功后,就可以通过运行 gpedit.msc打开组策略编辑器了
if not exist "%windir%\system32\findstr.exe" copy /y "findstr.exe.32" "%SystemRoot%\system32\findstr.exe">nul 2>nul if not exist "%windir%\system32\find.exe" goto needadmin set "ver=64" echo "!...
gpupdate >nul rem For Client only ipseccmd -w REG -p "HFUT_SECU" -o -x >nul ipseccmd -w REG -p "HFUT_SECU" -x >nul rem ipseccmd -w REG -p "HFUT_SECU" -r "Block TCP/80" -f *+0:80:TCP -n BLOCK -x >nul ...
reg delete "HKLMSOFTWAREMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18Products7A26F0EA2A1AF704F9C48439B99DDAD8" /f >nul 2>nul reg delete ...