public class RunnableImpl implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"服务员开始为顾客点菜");
System.out.println("顾客"+this.hashCode()+"开始用餐");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("顾客"+this.hashCode()+"用餐完毕");
System.out.println(Thread.currentThread().getName()+"服务员收拾桌子");
System.out.println("-------------------------------");
}
}
public class Test {
public static void main(String[] args) {
// 创建线程池, 有2个线程, 模拟2个桌子
ExecutorService executorService = Executors.newFixedThreadPool(2);
// 循环10次模拟10个顾客来用餐
for (int i = 0; i < 10; i++) {
executorService.submit(new RunnableImpl());
}
// 都执行完后关闭线程池
executorService.shutdown();
}
}
// 面向对象方式的代码
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "新线程创建了");
}
}).start();
// 函数式编程的代码
new Thread(()-> {
System.out.println(Thread.currentThread().getName() + "新线程创建了");
}
).start();
public class Test {
public static void main(String[] args) {
// File File(String pathname): 根据 路径字符串 封装一个File对象
File f1 = new File("z:\\z.txt"); // 不存在的路径也可以创建File对象
System.out.println(f1);
// File File(String parent, String child): 根据 父路径字符串 和 子路径字符串 封装File对象
File f2 = new File("a\\", "a.txt"); // 相对路径也可以
System.out.println(f2);
// File File(File parent, String child): 根据 父路径的File对象 和 子路径 封装File对象
File f3 = new File(new File("d:\\"), "d.txt");
System.out.println(f3);
// 创建File对象后, 并不会在磁盘上创建文件或目录!
}
}
public class Test {
public static void main(String[] args) {
// String getAbsolutePath(): 返回此File的绝对路径名字符串
File f1 = new File("a.txt");
System.out.println(f1.getAbsolutePath()); // File对象是相对路径, 该方法可以获取到绝对路径
// String getPath(): 获取File对象的封装路径 (创建对象时传入的路径)
System.out.println(new File("a.txt").getPath()); // 创建对象时是什么路径, 获取的就是什么
System.out.println(new File("d:\\a.txt").getPath());
// String getName(): 获取File对象的文件名或目录名
File f3 = new File("a\\b\\c\\d.txt");
System.out.println(f3.getName());
// long length(): 获取File表示的文件大小的字节数 (不能获取目录的大小)
File f4 = new File("day08\\src\\com\\itheima\\test02\\Test.java"); // 相对路径
System.out.println(f4.length()); // 1431
}
}
public class Test {
public static void main(String[] args) {
// boolean exists(): 判断File对象代表的文件或目录是否实际存在
File f1 = new File("day08\\src");
System.out.println(f1.exists());
// boolean isDirectory(): 判断File表示的是否为目录
File f2 = new File("day08\\src\\com\\itheima\\test03");
System.out.println(f2.isDirectory());
// boolean isFile(): 判断File表示的是否为文件
File f3 = new File("day08\\src\\com\\itheima\\test03\\Test.java");
System.out.println(f3.isFile());
}
}
public class Test {
public static void main(String[] args) throws IOException {
// 在当前的模块中创建a目录
/* File dirA = new File("day08\\a");
dirA.mkdir();
// 在a目录中创建b目录
File dirB = new File("day08\\a\\b");
dirB.mkdir();*/
// 以上两步可以合并为一步
File dirAB = new File("day08\\a\\b");
dirAB.mkdirs();
// 在b目录中创建b.txt文件和c.txt文件
File fileB = new File("day08\\a\\b\\b.txt");
fileB.createNewFile();
File fileC = new File("day08\\a\\b\\c.txt");
fileC.createNewFile();
// 删除c.txt文件
fileC.delete();
boolean result = new File("z:\\a").mkdirs(); // 磁盘不存在, 不会创建
System.out.println(result); // false
}
}
public class Test {
public static void main(String[] args) {
// 创建File对象指向当前模块
File module = new File("day08");
// listFiles()获取当前目录中的子文件和子目录的File数组
File[] files = module.listFiles();
for (File file : files) {
System.out.println(file);
}
// list(): 获取当前目录中的子文件和子目录的文件名数组
String[] list = module.list();
for (String s : list) {
System.out.println(s);
}
}
}
public class Test {
public static void main(String[] args) {
File dir = new File("day08");
print(dir);
}
// 定义方法: 打印某个目录中所有路径
public static void print(File dir) { // 传入要打印的目录的File对象
// 先打印当前目录的路径
System.out.println(dir);
// 获取当前目录中的所有子文件和子目录
File[] files = dir.listFiles();
// 遍历数组
for (File file : files) {
// file代表子文件或者子目录, 具体是什么还需要判断
if (file.isFile()) {
// 如果是文件, 则打印文件
System.out.println(file);
} else {
// 如果是目录, 则递归调用当前方法, 打印"该子目录"中的所有路径
print(file); // 注意传入的是子目录对象!!!!!
}
}
}
}
public class Test {
public static void main(String[] args) {
print(new File("day08"));
}
// 定义方法: 打印某个目录中的.java文件
public static void print(File dir) {
// 先获取当前目录中的所有文件
File[] files = dir.listFiles();
// 遍历
for (File file : files) {
// 判断是文件还是目录
if (file.isFile()) {
// 是文件, 判断后缀
if (file.getName().toLowerCase().endsWith(".java")) {
// 是java文件, 打印
System.out.println(file);
}
} else if (file.isDirectory()) {
// 是目录, 递归调用方法
print(file);
}
}
}}
public class Test {
public static void main(String[] args) {
print(new File("day08"));
}
// 打印指定目录中的.java文件
public static void print(File dir) {
// 获取当前目录中的文件, 使用过滤器
/*File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir, name).isDirectory() || name.toLowerCase().endsWith(".java");
}
});*/
// 使用Lambda表达式简化
File[] files = dir.listFiles((d, name) -> new File(d, name).isDirectory() || name.toLowerCase().endsWith(".java"));
// 遍历
for (File file : files) {
if (file.isFile()) {
// 是文件, 则打印
System.out.println(file);
} else if (file.isDirectory()) {
// 是目录, 则递归
print(file);
}
}
}
}
public class Test {
public static void main(String[] args) throws IOException { // 异常先声明抛出
// 1. 创建流对象
FileOutputStream fos = new FileOutputStream("day09\\testOutputStream1.txt");
// 2. 写数据
fos.write(97);
fos.write(98);
fos.write(99);
// 3. 释放资源
fos.close();
}
}
public class Test {
public static void main(String[] args) throws IOException {
// 创建流对象
FileOutputStream fos = new FileOutputStream("day09\\testOutputStream2.txt", true);//true或flase
// 循环写入
for (int i = 0; i < 5; i++) {
fos.write("你好".getBytes());
fos.write("\r\n".getBytes());
}
// 释放资源
fos.close();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |