从客户端传入一个文件路径:C:\Users\msg.log
在服务器端接受到后无法获取指定的文件(确定文件路径下文件存在)
服务器端:
BufferedReader reader = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String str = null;
char[] temp = new char[1024];
reader.read(temp);
str = String.valueOf(temp);
DataInputStream dis = new DataInputStream(
new FileInputStream(str));
试验过如果在这里直接给str赋值C:\Users\msg.log是可以取到文件的
也试过replaceAll(),但是使用str.replaceAll("\", "\\");会报错
1、先确定temp接收到的值是否正确
2、str.replaceAll("\\", "\\\\");替换成\
绝对路径就表示一个固定的路径,比如:C:\Documents and Settings\All Users\index.asp 那就表示访问电脑上这个路径上的index.asp 相对就表示基于这个目录下的文件比如: ../index.asp 就是网站目录的这个文件。 所以,最好不要用绝对路径.
你看取到的str的值是什么呗,可能是编码的问题
你用replaceAll() 想要做什么? replaceAll是正则匹配,用replace就可以了
str=str.replaceAll("\\", "\\\\"); 请注意第二个参数是8个\
绝对路径就表示一个固定的路径,比如:C:\Documents and Settings\All Users\index.asp 那就表示访问电脑上这个路径上的index.asp 相对就表示基于这个目录下的文件比如: ../index.asp 就是网站目录的这个文件。 所以,最好不要用绝对路径.