IO 流
IO 流
一 概念
I :input O :Output
IO意思是输入输出流
例子:
一个文档(text doc ),里面有一段字符串,利用JAVA语言把这一段字符加载到内存中,这个过程就是io,严格来说是流的输入
把内存中的一段内容保存到文本中,这个过程就是流的输出。
判断输入输出
输入还是输出是相对于内存来说的,从内存----->文本 为输出
从文本------>内存 输入
输入输出不一定是针对字符串的,也可以是图片,完整的文件,完整的文档,音频,视频
通过微信 发表状态(图片+文字)都是用io流判断的
File是对文件的根目录进行操作
public class FileTest{
public static void main(String [] args)throws IOException{
/**参数 一般指向的是需要操作的文件路径
*/
//File("D:\\a.txt")指的是文件所在位置,没有找的则创建此路径文件
File file = new Flie(" D:\\ a.txt");
boolean newFile = false;
//判断该文件是否存在
if(!file.exists()){
//创建文件
newFile = file.createNewFIle();
}
System.out.println("newFile ="+newFile);
File file = new File("D:\\a");
//获取当前目录下的文件名字
String[] ilst = file.list();
/ **
* for循环的作用就是从数组(集合)中每次拿出来一个元素进行遍历
* 设置临时变量i,每遍历一个元素,存放在设置的临时变量中,之后将临时变量打 印输出,就达到了集合遍历的效果
*/
for(String s :list){
System.out.println("s="+s);
}
// 提交作业
// name.doc
//写代码查询出来没有提交作业的学生名字
// 保存到list集合中
list<String> names = newArraylist<>();
names.add("张三");
names.add("李四");
names.add("王五");
names.add("赵六");
list<>commitNames = new Arraylist<>();
for(String s :list){
int index = s.indexOf(".");
String sub = s.substring(0,index);
commitNames.add(sub);
System.out.println("commitNames"+commitNames);
}
// 遍历所有已经交作业的集合,每次从commitNames中拿出来一个名字,看看这个名字在names中是否存在,如果存在,直接从names中移出,遍历结束后,剩下的全部是没有交的。
for(String name: commitNames){
if(names.contains(name)){
names.removew(name);
}
}
System.out.println("names = "+ names);
}
}
此题逻辑分析:文件A中存放学生作业(默认已经有学生交过作业),操作者B第一步要做的是通过创建File的对象,找到该文件在计算机中的根目录;第二步,通过名字检索该文件,将检索出来的名字放到String[]数组中;第三步,写代码将所有学生名字存放到list集合中;第四步,String数组和list集合的名字进行比较,list集合和String数组中共有的名字从String数组中删除,之后输出list集合中剩下的名字就是没有交作业的学生。
浙公网安备 33010602011771号