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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 还是回去火星吧 中级黑马   /  2014-3-1 21:04  /  924 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 还是回去火星吧 于 2014-3-1 21:55 编辑

import java.io.*;
import java.util.*;
class Student{
        public static void main(String[] args){
                List<File> list=new ArrayList<File>();//集合里面有文件名和路径。        
        }
        public static void wirterToFile(List<File> list){
                BufferedWriter bfw=null;
                try {
                        bfw=new BufferedWriter(new FileWriter("D:\\WirterToFile.txt"));
                        for(File s:list){
                                sop(s);//
                                bfw.write(s); // 为什么这里不能直接写入s ? 求解释!//如果集合是字符串等类型,就可以直接传入s。                              
                                bfw.write(s.getName());//这样就可以,为什么?
                        }
                } catch (Exception e) {
                        // TODO: handle exception
                }
        }
        public static void sop(Object obj){
                System.out.println(obj);
        }
}

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

5 个回复

倒序浏览
BufferedWriter没有write(File file)方法,所以直接尝试写入一个文件对象是错误的
而可以用write(String str)写入字符串,所以bfw.write(s.getName())这个肯定没问题

syso可以打印Object应该是因为:
    public static String valueOf(Object obj) {
        return (obj == null) ? "null" : obj.toString();
    }
    public void println(Object x) {
        String s = String.valueOf(x);
        synchronized (this) {
            print(s);
            newLine();
        }
    }

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
@俞帅明
回复 使用道具 举报
本帖最后由 还是回去火星吧 于 2014-3-1 21:58 编辑
e.c 发表于 2014-3-1 21:28
BufferedWriter没有write(File file)方法,所以直接尝试写入一个文件对象是错误的
而可以用write(String st ...

能这么理解吗?
增for(File s:list)遍历集合后, s获取到的是文件?而不是字符串吗?
但是直接打印 sop(s); 与sop(s.getNmae());打印出来的内容是一致的,都是字符串!----------------------------
,谢谢!!!!!!
s是File类型,s.getName是字符串,这么理解就好了!

点评

e.c
我后面有补充的 你SOP还不是调用system.out.println? syso我没写全,就是system.out.println  发表于 2014-3-1 21:58
回复 使用道具 举报
s是一个对象有不是一个字符串,参数应该是要写入的字符串啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马