java eclipse输出有点问题,全是小方格

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(); } } } } }
输入是能输入的,但是输入完最好一项后就打印出这个东西出来,为什么呢?

方框是字体的问题,问号才是字符集的问题,你在 eclipse 参数页中 General > Appearance > Colors and Fonts 里面把 Console 相关的字体设成一个支持汉字的字体,比如楷体或 Arial MS Unicode.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-11

小方格是输出了空字符和制表符等特殊符号,关闭方法如下:
1、打开Window->Preferences->General->Editors

2、选中Text Editors->去掉show whitespace characters前面的钩钩即可。

第2个回答  2013-07-16

项目名   右键  properties   然后如图

追问

改了,还是有问题,文字也变了

追答

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。控制台就不会乱码。
这样保证了工作空间和工程代码编程方式和工程里的单独文件的编码格式的不冲突。

本回答被提问者采纳
第3个回答  2015-10-30
输出是指的控制台吗 ?
我目前的能力就知道1中情况
1:编码格式不正确,例如什么utf-8什么之类的
完善我的问题: 我尼玛这么多人的回答了,就尼玛我回答的二笔 操
第4个回答  2013-07-16
右键工程 - properties - resource - Text file encoding 修改为utf-8试试追问

改了,还是有问题,文字也变了

追答

修改为utf-8 之后,System.out.println里的汉字变成乱码了么,你把这些乱码删掉重新输入一遍再打印出来看看