求教!android报异常FileNotFoundException! 学习android开发编写SOCKET客户端,用来发送文件

客户端完整代码。。问题出在FileInStream()这个函数上,始终报FileNotFoundException:/f:/words.txt异常。。急求!!就剩这点分了。。全部送上

package Ling.SocketClient;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SocketClientActivity extends Activity {
/** Called when the activity is first created. */
Button startButton = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startButton = (Button)findViewById(R.id.startListener);
startButton.setOnClickListener(new StartSocketListener());
}
}

class StartSocketListener implements OnClickListener {

public void onClick(View v) {
// TODO Auto-generated method stub\
new ClientThread().start();
}
}

class ClientThread extends Thread{
public void run(){
try{
System.out.println("connecting...");
Socket socket = new Socket("10.0.2.2",8192);
System.out.println("connected!reading...");
InputStream inputStream = new FileInputStream("f://words.txt");

System.out.println("sending...");
OutputStream outputStream = socket.getOutputStream();

byte buffer [] =new byte[4*1024];
int temp = 0;
while((temp = inputStream.read(buffer)) != -1){
outputStream.write(buffer,0,temp);
}
System.out.println("sending complete!");
outputStream.flush();

//接收
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String mstr=br.readLine();
System.out.println("read" + mstr);
}catch (Exception e){
e.printStackTrace();
}
}
}

FileNotFoundException:/f:/words.txt

看清楚异常的提示,它是报的文件“/f:/words.txt”没有找到,你用的是windows下的文件目录表示方法,可是android是基于linux平台的,它会到根目录“/”下找“f:”这个目录,这肯定找不到了。

解决方法:
1、将words.txt 放到项目的asserts目录下,然后
InputStream inputStream = SocketClientActivity.this.getAssets().open("words.txt");
2、将words.txt 放到SD卡里,然后
InputStream inputStream = new FileInputStream("/sdcard/words.txt");
3、也可以将你的文件放在你的工程默认路径下,然后再读:
FileInputStream fis = context.openFileInput("words.txt");
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-22
InputStream inputStream = new FileInputStream("f://words.txt");

将words.txt 放到项目的asserts目录下 然后
InputStream inputStream = SocketClientActivity.this.getAssets().open("words.txt");

OK了 android系统里面是没有 F盘。。。
第2个回答  2011-08-22
InputStream inputStream = new FileInputStream("f://words.txt");
你先要保证 f盘里面有一个words.txt的文件。
也就是说你先建个文件words.txt 在f盘下。
第3个回答  2011-08-21
这个是说你的这个文件他找不到,你的路径有问题。
相似回答
大家正在搜