楼主想开发版本控制软件吗?
牛!
祝你早日做出中国的CVS
牛!
祝你早日做出中国的CVS
解决方案 »
- java播放声音的问题!~
- 关于此段jsp代码的疑问
- 一个关于swt的简单问题
- 不好意思,这是第三次发贴了,刚才可能大家没有明白我的意思,比如说今天是2006年12月16日,我的生日是1982年12月23日,那么结果就应该是
- 函数名作为参数能否实现?
- 关于JOptionPane的问题
- 很简单的问题!!!
- 请问一下工作了的前辈们,你们工作中JAVA都用做开发什么?用什么开发工具?
- java MySql题 求大神帮忙解答 ,万分感谢!
- 不管按下哪个按钮都只向上运动而且初始的小球不消失,求大神指点。
- 请问java 怎么将一个gif图片画在另一个上 然后存为一个新的gif? 有门路的也可
- 各位大虾!急!帮忙!关于透明图片的问题,尤请beyond_xiruo兄!高分!
private InputStream Is;
private OutputStream Os;
private DataInputStream DIS;
private PrintStream PS;先是从输入流中读取字符串
readbuf = DIS.readLine();
判断非空之后
filename=readbuf;
但是不明白为什么名字会是乱码?还有就是传输0字节的时候
我在发送端的代码是//Debug使用调试的
读之前先判断一下是否为 0 呀
2)当文件名是中文时候,文件名也异常。
转换一下编码.
new String(原str.getBytes(),"gb2312")
几种编码自己试试, ------------------------------------------------------
我们还年轻牛奶会有的奶牛也会有的
可天天在 csdn 混这些会有吗 ??
读之前先判断一下是否为 0 呀
2)当文件名是中文时候,文件名也异常。
转换一下编码.
new String(原str.getBytes(),"gb2312")
几种编码自己试试, ------------------------------------------------------
我们还年轻牛奶会有的奶牛也会有的
可天天在 csdn 混这些会有吗 ??
try
{
FileInputStream fis = new FileInputStream(directory + "//" + list[i]);
Debug("begin Send file", false);//Debug使用调试的
while (true)
{
byte[] buf = new byte[4096];
int readln = fis.read(buf, 0, 4096);
if (readln < 4096)
{
if (readln == -1)//这个是针对0字节文件的处理。
{
readln = 0;
}
Os.write(buf, 0, readln);//不知道这样对0字节文件有什么后果
Debug("Send file buffer over", false);//Debug使用调试的
break;
}
Os.write(buf, 0, 4096);
}
fis.close();//写完一个文件就close()
}在接收端,我的做法是
while (true)
{
//Debug("hello", false);
byte[] readbuffer = new byte[4096];
try
{
readlen = Is.read(readbuffer);
Debug("hello2" + Integer.toString(readlen), false);//Debug使用调试的
}
catch (Exception e)
{
// Debug("error", false);
try
{
DIS.close(); //关闭数据输入流
PS.close(); //关闭数据输出流
Is.close(); //关闭输入流
Os.close(); //关闭输出流
sock.close(); //关闭socket
fos.close();
}
catch (Exception ex1)
{
Debug(ex1.toString(), false);//Debug使用调试的
}
return;
}
if (readlen == 0)
{
Debug("recv null", false);//Debug使用调试的
PS.println("GETFILESUCC");
Debug("send command succ", false);//Debug使用调试的
/*try
{
DIS.close(); //关闭数据输入流
PS.close(); //关闭数据输出流
Is.close(); //关闭输入流
Os.close(); //关闭输出流
sock.close(); //关闭socket
fos.close();
}
catch (Exception ex1)
{
}*/
try
{
fos.close();
}
catch (Exception ex1)
{
} continue;
}
try
{
fos.write(readbuffer, 0, readlen);
if (readlen < 4096)
{
/* fos.close();
DIS.close(); //关闭数据输入流
PS.close(); //关闭数据输出流
Is.close(); //关闭输入流
Os.close(); //关闭输出流
sock.close(); //关闭socket
fos.close();*/
PS.println("GETFILESUCC");
fos.close();
break; }
}
catch (Exception ex2)
{
try
{
DIS.close(); //关闭数据输入流
PS.close(); //关闭数据输出流
Is.close(); //关闭输入流
Os.close(); //关闭输出流
sock.close(); //关闭socket
fos.close();
}
catch (Exception ex1)
{
}
return;
}
}
敬礼了。
顺便对pleonheart说声,
我不是做那个东西,
我做的是一个很简单的东东,
是项目里必须的。
我还是学生,呵呵,不过快毕业了。
很多东西得向大g大j们学习。
filename=new String(readbuf.getBytes(),"gb2312");
得到filename是?????.txt(应该是 “修改密码.txt”)
呵呵接下来的
fos = new FileOutputStream(FilePath + "\\" + filename);
自然的出错。还请高手指点迷津
byte[] buf = new byte[4096];
int bytes = 0;
while((bytes = fis.read(buf)) != -1)
Os.write(buf, 0, bytes);接收端循环部分的代码可作如下简化:
byte[] buf = new byte[4096];
int bytes = 0;
while((bytes = Is.read(buf)) != -1)
fos.write(buf, 0, bytes);