要对文件进行读取,就需要一个用FIle对象构造一个Scanner对象
Scanner in = new Scanner(Paths.get(("myfile.txt"));
"c:\\mydirectory\\myfile.txt"
file如果指的是一个文件集,我们就可以对此集合调用list()方法,这个方法会返回一个字符数组。很容易理解为什么返回的是一个数组而不是某个更具灵活性的类容器,因为元素的个数是固定的,所以如果我们想取得不同的目录列表,只需要创建一个带不同File对象就可以了。实际上,FliePath对这个类来说是个更好的名字。
File file = new File(.)
从上面的图1中我们可以看出,FilterInputStream虽说是Inputstream的子类,但它依然是BufferedInputStream、DataInputStream、LineNumberInputStream、PushbackInputStream类的父类,这四个类分别提供了最贴近我们程序员使用的方法,如:readInt() 、readInt()、readInt()等等。对于IO操作,不管是磁盘还是网络,最终都是对字节的操作,而我们平时写的程序都是字符形式的,所以在传输的过程中需要进行转换。在字符到字节的转换过程中,我们需要用到一个类:InputStreamReader。
new BufferedReader(new InputStreamReader(System.in)),这是用来从键盘接受一行输入的代码,下面我们从里到外进行分析吧。
System.in的类型是InputStream,它代表的是键盘接受的输入,就是说键盘是数据源;System.in的类型可以归结为节点流、字节流、输入流;接下来是InputStreamReader这个对象是处理流,字符流,输入流;
最外面的是BufferedReader的类型是缓冲处理流、字符流、输入流。是不是有点绕啊,下面我们就从流的分类开始。
- BufferedReader in = new BufferedReader(new StringReader(
- InputStreamTest.read("src/BasicFileOutput.java")));
两个是等价的
PrintWriter out = new PrintWriter("employee.txt");等同于PrintWriter out = new PrintWriter(new FileWriter("employee.txt");
流 字符 数值 字节的概念不清