java中IO流的面试题,以及编写代码
思路就是将文件通过IO流进行读取出来,然后进行遍历即可;
首先是介绍文件:
重点把文件下的目录显示出来就可以了
File表示了文件与文件夹两个种类;
//实例化对象
File file = new File(文件/文件夹);
//创建文件
createNewFile();
//创建单极文件夹
mkdir();
//创建多级文件夹
mkdirs();
//判断是否存在
public boolean exists()
//判断是否是文件夹
public boolean isDirectory()
//判断是否是文件
public boolean isFile()
//获取文件夹下的所有文件String[]
String[] list();
//获取文件夹下的所有文件File[]
File[] listFiles();
文件的展示:
public class DemoTest01 {
public static void main(String[] args) throws IOException {
File file = new File("文件路劲");
System.out.println(file.getName());
File[] files = file.listFiles();
for(File f : files){
printFile(f,"\t");
}
}
public static void printFile(File file,String str){
if(file.exists()){
if(file.isDirectory()){
System.out.println(str+file.getName());
File[] files = file.listFiles();
str+="\t";
for(File f : files){
printFile(f,str);
}
}else {
System.out.println(str+file.getName());
}
}
}
}
文件搜索:
public class DemoTest01 {
public static void main(String[] args) throws IOException {
File file = new File("E:\\项目2\\就业课");
System.out.println(file.getName());
File[] files = file.listFiles();
for(File f : files){
printFile(f,"五");
}
}
public static void printFile(File file,String str){
if(file.exists()){
if(file.isDirectory()){
File[] files = file.listFiles();
for(File f : files){
printFile(f,str);
}
}else {
if(file.getName().contains(str)){
System.out.println(file.getAbsoluteFile());
}
}
}
}
}
下面是IO流的种类:
分类:
字节流和字符流
输入流和输出流
低级流和高级流
字节流:FileInputStream FileOutputStram
读取:
FileInputStream stream = new FileInputStream("E:\\dlei.txt");
byte[] bytes = new byte[1024];
int read = stream.read(bytes);
while (read !=-1){
String string = new String(bytes,0,read);
System.out.println(string);
read = stream.read(bytes);
}
写入:
FileOutputStream outputStream = new FileOutputStream("E:\\dlei.txt",true);
String str = "nihao";
byte[] bytes = str.getBytes();
outputStream.write(bytes);
outputStream.close();
字符流:FileReader FileWriter
读取:
FileReader fileReader = new FileReader("E:\\dlei.txt");
char[] chars = new char[1024];
int read = fileReader.read(chars);
while (read!=-1){
String s = new String(chars, 0, read);
System.out.println(s);
read = fileReader.read(chars);
}
写入:
FileWriter fileWriter = new FileWriter("E:\\dlei.txt",true);
String str = "uiabroi";
char[] chars = str.toCharArray();
fileWriter.write(chars);
fileWriter.close();
高级流:
缓冲流:
字节流:(与低级流的使用没有什么区别就是速度更加快)
BufferInputStream
BufferOutputStream
字符流:(与低级流的使用没有什么区别就是速度更加快)
BufferReader
BufferWriter
就是包装就可以了;
转换流:(解决编码环境不一样,所以会出现乱码问题)
InputStreamReader
OutputStreamWriter
直接new就行了
打印流:
PrintStream
PrintWriter
常见的面试题目:
IO流的种类:以上就是常用的
文件的方法,及其递归:文件,关键是使用递归,判断是否是文件还是文件夹,listFile();
读取文件:流
乱码问题:转化流