A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 姚玉鹏 初级黑马   /  2012-6-8 09:10  /  2142 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 姚玉鹏 于 2012-6-8 10:25 编辑
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.io.*;
  4. class test
  5. {
  6.         private Frame f;
  7.         private File fe;
  8.         private MenuBar mb;
  9.         private Menu m;
  10.         private MenuItem mload,msave,mclose;
  11.         private TextArea ta;
  12.         test()
  13.         {
  14.                 ini();
  15.         }
  16.         public void ini()
  17.         {
  18.                 f=new Frame();
  19.                 ta=new TextArea();
  20.                 mb=new MenuBar();
  21.                 m=new Menu("文件");
  22.                 mload=new MenuItem("打开");
  23.                 msave=new MenuItem("保存");
  24.                 mclose=new MenuItem("关闭");
  25.                 f.setBounds(200,100,500,400);
  26.                 f.setLayout(new FlowLayout());
  27.                 f.add(ta);
  28.                 f.setMenuBar(mb);
  29.                 mb.add(m);
  30.                 m.add(mload);
  31.                 m.add(msave);
  32.                 m.add(mclose);
  33.                 method();
  34.                 f.setVisible(true);
  35.         }
  36.         public void method()
  37.         {
  38.                 f.addWindowListener(new WindowAdapter(){
  39.                 public void windowClosing(WindowEvent e){
  40.                         System.exit(0);
  41.                 }});
  42.                 mclose.addActionListener(new ActionListener(){
  43.                         public void actionPerformed(ActionEvent e){
  44.                                 System.exit(0);
  45.                         }
  46.                 });
  47.                 mload.addActionListener(new ActionListener(){
  48.                         public void actionPerformed(ActionEvent e){
  49.                                 try{
  50.                                 FileDialog fdg=new FileDialog(f,"",FileDialog.LOAD);
  51.                                 fdg.setVisible(true);
  52.                                 String dirpath=fdg.getDirectory();
  53.                                 String filepath=fdg.getFile();
  54.                                 
  55.                                 if(dirpath==null||filepath==null){
  56.                                         //System.out.println(dirpath+"::::"+filepath);
  57.                                 return;}
  58.                                 else{
  59.                                         //System.out.println(dirpath+"::::"+filepath);
  60.                                         ta.setText("");
  61.                                 fe=new File(dirpath+filepath);
  62.                                 byte[] b=new byte[1024*1024];
  63.                                 int len;
  64.                                         BufferedInputStream bis=new BufferedInputStream(new FileInputStream(fe));
  65.                                 while((len=bis.read(b))!=-1)
  66.                                 {
  67.                                         ta.append(new String(b,0,len)+"\r\n");
  68.                                        
  69.                                 }}
  70.                                 }
  71.                                 catch (Exception ex)
  72.                                 {
  73.                                         throw new RuntimeException("。。。。");
  74.                                 }
  75.                                 
  76.                                 }
  77.                                 

  78.                         }
  79.                 );
  80.                 msave.addActionListener(new ActionListener(){
  81.                         public void actionPerformed(ActionEvent e){
  82.                                 try
  83.                                 {
  84.                                         String textstr=ta.getText();
  85.                                         if(fe==null)
  86.                                         {
  87.                                                 FileDialog fdg=new FileDialog(f,"",FileDialog.SAVE);
  88.                                                 fdg.setVisible(true);
  89.                                                 String path=fdg.getDirectory()+fdg.getFile();
  90. //                                                System.out.println(fdg.getDirectory());打印结果为null;
  91. //                                                System.out.println(fdg.getFile());打印结果为null;
  92. //                                                System.out.println(path);打印结果为nullnull;
  93.                                         if(path==null))//这步判断无效....
  94.                                         return;
  95.                                         else
  96.                                         fe=new File(path);
  97.                                         }
  98.                                         PrintStream ps=new PrintStream(new FileOutputStream(fe),true);
  99.                                         ps.println(textstr);
  100.                                 }
  101.                                 catch (Exception ex)
  102.                                 {
  103.                                         throw new RuntimeException(";;;;");
  104.                                 }
  105.                         }
  106.                 });

  107.         }
  108.         public static void main(String[] args)
  109.         {
  110.                 new test();
  111.         }
  112. }
复制代码
null+null为什么等于nullnull
这里
//                                                System.out.println(fdg.getDirectory());打印结果为null;
//                                                System.out.println(fdg.getFile());打印结果为null;
//                                                System.out.println(path);打印结果为nullnull;
                                        if(path==null))//这步判断无效....
                                        return;
难道是自动强转么???????

3 个回复

倒序浏览
fdg.getDirectory()和fdg.getFile();返回的都是字符串,字符串+字符串的果是直接连接组成新的字符串的。例如
public class Str {
public static void main(String[] args) {
        String str1= "ab"+"cd";
      
        System.out.println(str1);
    }
}
打印为abcd
所以null+null=nullnull

点评

受教了 null+nul 竟然是nullnull 。。。。。  发表于 2012-6-8 10:41

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
付信榕 发表于 2012-6-8 09:25
fdg.getDirectory()和fdg.getFile();返回的都是字符串,字符串+字符串的果是直接连接组成新的字符串的。例 ...

如果是这样if(dirpath==null||filepath==null) 这两个也是字符串 可是==null  是可以判断的
回复 使用道具 举报
姚玉鹏 发表于 2012-6-8 09:48
如果是这样if(dirpath==null||filepath==null) 这两个也是字符串 可是==null  是可以判断的 ...

“==”是另外一种运算符了。==两边只要是具有可比性的就可以用==来进行判断两者相等与否了。所以if(dirpath==null||filepath==null) 这两个也是字符串 可是==null  是可以判断的 ...没有问题的。而字符串+字符串的运算规律是刚才讲的那样。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马