android利用Serialization向服务器端发送任意的文件(二)
publicclassAndroidClientActivityextendsActivityimplementsOnClickListener{
privateButtonbtn1;
privateStringfilePath="/sdcard/image/";
privateStringfileName="bln.jpg";
@Override
publicvoidonCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1= (Button)this.findViewById(R.id.btn1);
btn1.setOnClickListener(this);
}
publicvoidonClick(View v){
try{
//建立和服务器的连接
Socket socket =newSocket("192.168.0.10", 6666);
//创建FilePojo对象
FilePojo fpo =newFilePojo();
//设定文件名
fpo.setFileName(fileName);
//设定文件大小
File f =newFile(filePath+fileName);
longfileLength = f.length();
fpo.setFileLength(fileLength);
//读取文件内容,并将其转换为byte[]
FileInputStream fis =newFileInputStream(filePath+fileName);
byte[] fileContent =newbyte[(int) fileLength];
fis.read(fileContent, 0, (int) fileLength);
fpo.setFileContent(fileContent);
//将FilePojo对象fpo写到Socket client指定的输出流
longstart = System.currentTimeMillis();
ObjectOutputStream oos =newObjectOutputStream(socket.getOutputStream());
oos.writeObject(fpo);
longend = System.currentTimeMillis();
Toast.makeText(this.getApplicationContext(),"It takes "+ (end - start) +"ms", Toast.LENGTH_LONG).show();
oos.flush();
oos.close();
}
catch(Exception ioe){
ioe.printStackTrace();
}}}
下面就是在AndroidManifest.xml中增加permission权限如下:
<!--表示该程序可以读取sd卡上的内容-->
<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>.
<!--表示该程序可以联网-->
<uses-permissionandroid:name="android.permission.INTERNET"/>
4、运行。
先运行服务端ObjectServer,再在Android手机上运行客户端AndroidClientActivity。
更多相关文章
- android实现再按一次退出程序
- android-Camera.AutoFocusMoveCallback
- Android使用ViewPager完成app引导页
- Android开机启动动画
- 获得 android 通讯薄 中的内容
- Android实现自动轮播图效果
- Android中实现输入图片地址浏览图片操作
- 【Android小经验】 ListView列中的一个ITEM值
- Android(java)学习笔记63:线程的调度