最后
一次偶然,从朋友那里得到一份“java高分面试指南”,里面涵盖了25个分类的面试题以及详细的解析:JavaOOP、Java集合/泛型、Java中的IO与NIO、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、Spring Boot、Spring Cloud、RabbitMQ、Dubbo 、MyBatis 、ZooKeeper 、数据结构、算法、Elasticsearch 、Kafka 、微服务、Linux。
这不,马上就要到招聘季了,很多朋友又开始准备“金三银四”的春招啦,那我想这份“java高分面试指南”应该起到不小的作用,所以今天想给大家分享一下。
请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
FileWriter fw1 = new FileWriter(“test1.txt”); //创建FileWrite对象(覆盖写入)
//重载一:写字符串的整体
fw1.write(“Hello,my love!”); //调用writer方法写数据
fw1.write(“\r\n”); //Windows系统中的换行方式
fw1.write(“LongRu\r\n”);
//重载二:写字符串的部分
String str = “Hello,my love,Longru!”;
fw1.write(str,14,7);
fw1.write(“\r\n”);
//重载三:写字符数组的整体
char[] array1 = {‘H’,‘e’,‘l’,‘l’,‘o’};
fw1.write(array1);
fw1.write(“\r\n”);
//重载四:写字符数组的部分
char[] array2 = {‘M’,‘y’,’ ',‘l’,‘o’,‘v’,‘e’};
fw1.write(array2,3,4);
fw1.write(“\r\n”);
//重载五:写单个字符
fw1.write(65);
fw1.write(48);
fw1.write(“\r\n”);
fw1.close(); //调用close方法关闭流
FileWriter fw2 = new FileWriter(“test2.txt”,true); //创建FileWrite对象(追加写入)
fw2.write(“Hello,my love!”); //调用writer方法写数据
fw2.write(“LongRu”);
fw2.close(); //调用close方法关闭流
System.out.println(“==================================================”);
//重载一:读取单个字符
FileReader fr1 = new FileReader(“test1.txt”);
int ch;
while ((ch = fr1.read()) != -1)
{
System.out.println((char) ch);
}
//重载二:读取指定长度字符
FileReader fr2 = new FileReader(“test2.txt”);
char[] buf = new char[2];
int len; //代表有效个数
while ((len = fr2.read(buf)) != -1)
{
String str3 = new String(buf,0,len);
System.out.println(str3);
}
fr2.close();
}
}
- BufferedWriter & BufferedReader
package BufferFile;
import java.io.*;
public class Main {
public static void main(String[] ages) throws IOException {
FileWriter fw = new FileWriter(“test3.txt”); //创建BufferedWriter
BufferedWriter bw = new BufferedWriter(fw);
bw.write(“hello”); //写入
bw.newLine(); //BufferedWriter特有的自动根据操作系统换行功能
bw.write(“My love!”);
bw.close(); //关闭
//读单个字符,其实是从8192的缓冲区读取单个字符
FileReader fr = new FileReader(“test3.txt”); // 创建BufferedReader
BufferedReader br = new BufferedReader(fr);
int ch;
while ((ch = br.read()) != -1)
{
System.out.println((char)ch);
}
br.close();
//BufferedReader提供了一个读取一行字符串的方法
FileReader fr2 = new FileReader(“test1.txt”); // 创建BufferedReader
BufferedReader br2 = new BufferedReader(fr2);
String line; //代表一行字符串
while ((line = br2.readLine()) != null)
{
System.out.println(line);
}
}
}
二、File 类
========
1、File类的概述和作用
-
File类是文件和目录路径名的抽象表示形式
-
Java中把文件或者目录(文件夹)都封装成File对象
-
在硬盘上操作文件,直接使用 File 类
2、File类静态的成员变量
-
pathSeparator:与系统有关的路径分隔符,为了方便,它被表示为一个字符串
-
separator:与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串
public static void main(String[] args) {
//File类静态成员变量
//与系统有关的路径分隔符
String separator = File.pathSeparator;
System.out.println(separator);// 是一个分号,目录的分割(window中环境变量配置各个路径用分号分割,表示一个完整的路径结束) Linux中是冒号 :
//与系统有关的默认名称分隔符
separator = File.separator;
System.out.println(separator);// 向右 \ 目录名称分割 Linux /
}
3、File 类的构造方法
-
File(String pathname):将路径封装File类型对象
-
File(String parent,String child):根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 对象
-
File(File parent,String child):将parent封装成file对象
public static void main(String[] args){
//将路径封装File类型对象
String pathName = “F:\TestPath”;
File f1 = new File(pathName);//将Test22文件封装成File对象。注意;有可以封装不存在文件或者文件夹,变成对象。
System.out.println(f1);
//根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 对象
File f2 = new File(“F:\TestPath”,“a.txt”);
System.out.println(f2);
//将parent封装成file对象。
File dir = new File(“F:\TestPath”);
File f3 = new File(dir,“a.txt”);
System.out.println(f3);
}
4、File 类创建、删除文件(文件、文件夹)
-
public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
-
public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
-
public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
-
public boolean delete():删除文件或者文件夹
public static void main(String[] args) throws IOException {
//创建文件
File F1 = new File(“F:\TestPath\a.txt”);
boolean B1 = F1.createNewFile();
System.out.println(B1);
//创建文件夹
File F2 = new File(“F:\TestPath\a”);
boolean B2 = F2.mkdir();
System.out.println(B2);
//删除文件
File F3 = new File(“F:\TestPath\a.txt”);
boolean B3 = F3.delete();
System.out.println(B3);
}
5、File 类获取功能
-
String getName():返回路径中表示的文件或者文件夹名(获取路径中的最后部分的名字)
-
long length(): 返回路径中表示的文件的字节数
-
String getAbsolutePath():获取绝对路径,返回String对象
-
File getAbsoluteFile() :获取绝对路径,返回File对象
-
String getParent():获取父路径,返回String对象
-
File getParentFile():获取父路径,返回File对象
public static void main(String[] args) throws IOException {
File F1 = new File(“F:\TestPath\a.txt”);
F1.createNewFile();
String S1 = F1.getName(); //返回路径中表示的文件或者文件夹名,即获取路径中最后部分的名字
long L1 = F1.length(); //返回路径中表示的文件的字节数
File absolute = F1.getAbsoluteFile(); //获取绝对路径,返回File对象
File parent = F1.getParentFile(); //获取父路径,返回File对象
System.out.println(S1);
System.out.println(L1);
System.out.println(absolute);
System.out.println(parent);
}
6、File 类判断功能
-
boolean exists():判断File构造方法中封装路径是否存在
-
boolean isDirectory():判断File构造方法中封装的路径是不是文件夹
-
boolean isFile():判断File构造方法中封装的路径是不是文件
7、File 类 list 获取功能
-
String[] list():获取到File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)
-
File[] listFiles():获取到,File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)
-
static File[] listRoots(): 列出可用的文件系统根
public static void main(String[] args)
{
File dir = new File(“F:\TestPath”);
//获取的是目录下的当前的文件以及文件夹的名称。
String[] names = dir.list();
for(String name : names){
System.out.println(name);
}
System.out.println(“========================”);
//获取目录下当前文件以及文件对象,只要拿到了文件对象,那么就可以获取其中想要的信息
File[] files = dir.listFiles();
for(File file : files){
System.out.println(file);
}
}
注意:
-
指定的目录必须存在
-
指定的必须是目录,否则容易返回数组null,出现NullPointerException
8、文件过滤器
使用文件过滤器可以删选出某些关键字的文件或文件夹,即过滤一个目录下的指定扩展名的文件,或者包含某些关键字的文件夹
常用方法:
-
public String[] list(FilenameFilter filter):
-
public File[] listFiles(FileFilter filter):
自定义过滤器类
//自定义过滤器实现FileFilter接口,重写抽象方法
public class myFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(“.txt”);
}
}
在main中调用
public static void main(String[] args)
{
File F = new File(“F:\TestPath”);
File[] filearr = F.listFiles(new myFilter());
for(File f : filearr)
{
System.out.println(f);
}
}
分析:
-
listFiles()遍历目录的同时,获取到了文件名全路径,调用过滤器的方法accept,将获取到的路径传递给accept方法的参数pathname
-
accept方法接收了参数pathname,参数是listFiles传递来的
-
在accept方法中,进行判断,如果这个路径是txt文件,返回true,走着返回false
-
一旦方法返回了true,listFiles将路径保存到File数组中
最后如何让自己一步步成为技术专家
说句实话,如果一个打工人不想提升自己,那便没有工作的意义,毕竟大家也没有到养老的年龄。
当你的技术在一步步贴近阿里p7水平的时候,毫无疑问你的薪资肯定会涨,同时你能学到更多更深的技术,交结到更厉害的大牛。
推荐一份Java架构之路必备的学习笔记,内容相当全面!!!
成年人的世界没有容易二字,前段时间刷抖音看到一个程序员连着加班两星期到半夜2点的视频。在这个行业若想要拿高薪除了提高硬实力别无他法。
你知道吗?现在有的应届生实习薪资都已经赶超开发5年的程序员了,实习薪资26K,30K,你没有紧迫感吗?做了这么多年还不如一个应届生,真的非常尴尬!
进了这个行业就不要把没时间学习当借口,这个行业就是要不断学习,不然就只能被裁员。所以,抓紧时间投资自己,多学点技术,眼前困难,往后轻松!
【关注】+【转发】+【点赞】支持我!创作不易!
会涨,同时你能学到更多更深的技术,交结到更厉害的大牛。
推荐一份Java架构之路必备的学习笔记,内容相当全面!!!
[外链图片转存中…(img-xv6hSrYJ-1715632110844)]
成年人的世界没有容易二字,前段时间刷抖音看到一个程序员连着加班两星期到半夜2点的视频。在这个行业若想要拿高薪除了提高硬实力别无他法。
你知道吗?现在有的应届生实习薪资都已经赶超开发5年的程序员了,实习薪资26K,30K,你没有紧迫感吗?做了这么多年还不如一个应届生,真的非常尴尬!
进了这个行业就不要把没时间学习当借口,这个行业就是要不断学习,不然就只能被裁员。所以,抓紧时间投资自己,多学点技术,眼前困难,往后轻松!
【关注】+【转发】+【点赞】支持我!创作不易!