java eclipse输出有点问题,全是小方格
importjava.io.*;importjava.net.Socket;importjava.net.UnknownHostException;importjava....
import java.io.*;import java.net.Socket;import java.net.UnknownHostException;import java.util.Scanner;public class SocketText { public static void outputStream(String name) { File file=new File(name); FileOutputStream os=null; Scanner a=new Scanner(System.in); try{ os=new FileOutputStream(file); System.out.println("请输入用户名:"); byte[] b=a.nextLine().getBytes(); System.out.println("请输入密码:"); byte[] b2=a.nextLine().getBytes(); System.out.println("恭喜你注册成功!"); os.write(b); os.write(b2);
os.flush(); } catch(FileNotFoundException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } finally { try{ if(os!=null) { os.close(); } } catch(IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("输入1为注册,输入2为登陆!请选择:"); Socket socket=null; try { socket=new Socket("127.0.0.1",12345); OutputStream os=socket.getOutputStream(); outputStream("F:\\abc.txt"); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(socket!=null){ try { socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
输入是能输入的,但是输入完最好一项后就打印出这个东西出来,为什么呢? 展开
os.flush(); } catch(FileNotFoundException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } finally { try{ if(os!=null) { os.close(); } } catch(IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("输入1为注册,输入2为登陆!请选择:"); Socket socket=null; try { socket=new Socket("127.0.0.1",12345); OutputStream os=socket.getOutputStream(); outputStream("F:\\abc.txt"); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(socket!=null){ try { socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
输入是能输入的,但是输入完最好一项后就打印出这个东西出来,为什么呢? 展开
10个回答
2015-12-11 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
小方格是输出了空字符和制表符等特殊符号,关闭方法如下:
1、打开Window->Preferences->General->Editors
2、选中Text Editors->去掉show whitespace characters前面的钩钩即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
追问
改了,还是有问题,文字也变了
追答
Eclipse 的控制台必须用GBK编码。所以条件1和条件4必须同时满足否则运行的还是乱码。才能保证不是乱码。
条件1,Window | Preferences | Workspace | Text fileencoding | GBK编码。
这样定义的是整个工作区间的编码。
这样就把整个工作空间的编码格式定死了,但是如果某一个工程用的是不同的编码格式的话这样单独再解决。如下:
条件2,工程上右键 | Properties | Resource | Text fileencoding | UTF-8编码。或者适合的编码格式。这样定义的是整个工程的编码。
这样就把整个工程的编码格式定死了,但是如果某一个文件用的是不同的编码格式的话这样单独再解决。如下:
条件3,在某个文件上右键| Properties | Resource | Text fileencoding | UTF-8编码。或者适合的编码格式。这样定义的是单独某个文件的编码。
这里要说的是文件的实际编码格式优先用的是:第3个,其次再用2,最后先用1。有时候是123,必须满足条件。无论怎样这几种编码格式试一试就全知道了。
条件4,还有运行时编码设置如下:菜单:Run Configuration | 右侧的选项卡Common 的 Console Encoding 选择GBK编码。这个是用来控制console控制台显示,必须是GBK,就不会乱码。尽管1,2,3条件都不是GBK,只要4是GBK。控制台就不会乱码。
这样保证了工作空间和工程代码编程方式和工程里的单独文件的编码格式的不冲突。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出是指的控制台吗 ?
我目前的能力就知道1中情况
1:编码格式不正确,例如什么utf-8什么之类的
完善我的问题: 我尼玛这么多人的回答了,就尼玛我回答的二笔 操
我目前的能力就知道1中情况
1:编码格式不正确,例如什么utf-8什么之类的
完善我的问题: 我尼玛这么多人的回答了,就尼玛我回答的二笔 操
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
右键工程 - properties - resource - Text file encoding 修改为utf-8试试
追问
改了,还是有问题,文字也变了
追答
修改为utf-8 之后,System.out.println里的汉字变成乱码了么,你把这些乱码删掉重新输入一遍再打印出来看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询