黑马程序员技术交流社区
标题:
IO流中的Writer写入问题。
[打印本页]
作者:
还是回去火星吧
时间:
2014-3-1 21:04
标题:
IO流中的Writer写入问题。
本帖最后由 还是回去火星吧 于 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);
}
}
作者:
e.c
时间:
2014-3-1 21:28
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();
}
}
作者:
还是回去火星吧
时间:
2014-3-1 21:44
@俞帅明
作者:
还是回去火星吧
时间:
2014-3-1 21:50
本帖最后由 还是回去火星吧 于 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是字符串,这么理解就好了!
作者:
山治0712
时间:
2014-3-2 17:22
s是一个对象有不是一个字符串,参数应该是要写入的字符串啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2