解决方案 »
- 请问为什么我这个正则表达式提示错误
- java读写dxf格式文件
- if(pl.getProduct().getPno()==pro.getPno())为啥会是false
- 写了paint后组件重绘依旧失效
- JAVA的IO问题
- JToolBar不能显示由JToolBar.addSeparator()添加的分隔线?
- 可以详细的讲一下java.lang.reflect的实现,我看了半天书也没明白!
- 急急急:谁有Jbuilder 六 的注册文件,请给[email protected]发一个,谢谢
- Java-Iterator的三个方法
- 求助,这个应该怎么写
- Syntax error on token "class", @ expected大神们这为什么报错哇
- 一个关于打印数组的问题
线程安全注意了吗
聊天内容是存入数据库的吗? 频繁地读写还可以优化吗? 弄个Redis什么做个缓存
聊天可以发这样的的表情吗,或者抖动窗口?
我以前也写过这样同学称之为”约炮网站“的东西~~~~wish you better sincerely
BufferedReader br = new BufferedReader(fr);
String str="":
while((readStr = br.readLine())!=null){
str +=readStr ;
}//换一种试试
经过您这样一说,我立刻去尝试了,
代码如下:
System.out.println("实验转码:"+new String(new String("12图片".getBytes("UTF-8"), "GBK").getBytes("GBK"),"UTF-8"));
结果如下:
实验转码:12图片
上面不是吐槽啊,
虽然没有出现乱码,但是我还是能理解您你想表达的是什么意思,这样也的确说得通为什么.txt没问题,而.doc和.png出问题。
之后,关于您后面的问题,我真心是初学者,所以,现在只是在做传送文件,关于线性安全这些,真心还没有想过= =
不过,你给的意见对我的确很大作用,非常感谢!
回复4楼:
现在我用的是这种流读取文件:
DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream(file)));
感觉可以,读取成功。你的我也会作为一种参考啦,谢谢您的帮忙啦
面向字节,这一点我现在清楚了。
不过传送字节,就得用传送直接的write()和接收字节的read()
不过现在有一个问题困扰着我,能有上面这些方法的,现在只是找到对象流
如:ObjectInputStream ois=new ObjectInputStream(so.getInputStream());
这个流的read()方法可以读取字节;
而另外一张BufferedReader br = new BufferedReader(new InputStreamReader(so.getInputStream()));
这种流,不能read方法不能接收字节,只能收字符。
综上,我是用BufferedReader 传送聊天信息,用ObjectInputStream 传送文件,但现在的进度是,又是成功,有时失败,完全搞不懂为什么。
用得是TCP,传文件防丢包,安全可靠啦
嗯嗯,好的,正在看。
顺便问一下大家,你们如果做接收文件,是否会开另外一个socket端口和线程?
另外,
读文件用的流是:DataInputStream disfile = new DataInputStream(new FileInputStream(file));
而传送文件的字节用的是对象流:DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
接收也是用的是对象流:DataInputStream dis = new DataInputStream(socket.getInputStream());
写文件用的流是:DataOutputStream out = new DataOutputStream(new FileOutputStream(file));
还有,貌似是因为TCP是单传输的,每次真的保证只有一条信息发给服务器,一条信息返回。如果同一个客户端的端口进行多条信息,小心无法识别啊。所以传文件和聊天我分开两个端口来做了。
最后,谢谢大家的各种帮忙和关注
结贴咯!