**** 新手切记,得多实践去敲,不要以为自己看懂了,就会了,一定一定一定的多敲代码。****
(五) 在程序中写一个"HelloJavaWorld你好世界"输出到操作系统文件Hello.txt文件中
(六) 拷贝一张图片,从一个目录到另外一个目录下(PS:是拷贝是不是移动)
第一题
解题思路都在代码上/**
* 在电脑D盘下创建一个文件为HelloWorld.txt文件,
* 判断他是文件还是目录,在创建一个目录IOTest,之后将HelloWorld.txt移动到IOTest目录下去;之后遍历IOTest这个目录下的文
*/
@Test
public void test08() throws Exception{
String path="D:/HelloWorld.txt";
//首先创建出HelloWorld.txt文件
File file = new File(path);
boolean isFile = file.isFile();
if(isFile){
System.out.println("该文件是一个文件不是一个文件夹");
}
boolean isDir = file.isDirectory();
if(isDir){
System.out.println("该文件是一个文件夹");
}
//创建IOTest目录
String IOtest= "D:/IOTest";
File file1 = new File(IOtest);
file1.mkdirs();
if(file.renameTo(new File(file1.getPath()+"/"+file.getName()))){
System.out.println("文件移动成功");
}
}
第二题
/**
* @author :tiantian
* @date :2022/2/26 11:57
*/
public class FileUtils {
public static List<File> getFiles(String dir) {
//存放遍历出来的file
List<File> files = new ArrayList<>();
File file = new File(dir);
if(file.exists()&&file.isDirectory()){
logic(file,files);
}
return files;
}
//重点理解递归思想
public static List<File> logic(File file,List<File> files){
File[] files1 = file.listFiles();
if(files1 == null){
return null;
}
for (File file1 : files1) {
files.add(file1);
//递归思想体现处
logic(file1,files);
}
return files;
}
}
测试
/**
* 递归实现输入任意目录,列出文件以及文件夹,效果看图
*
* 编程中有一个思想很重要,就是提取公共类,封装成工具类,这个帮助我们节省很多事
*/
@Test
public void test09(){
String dir = "D:/";
List<File> files = FileUtils.getFiles(dir);
for (File file : files) {
System.out.println(file);
}
}
第三题
/**
* 输出所有.txt的文件
* 直接运用第二题的工具类实现
*/
@Test
public void test10(){
String path="写你的文件地址";
List<File> files = FileUtils.getFiles(path);
for (File file : files) {
if(file.toString().endsWith(".txt")){
System.out.println(file);
}
}
}
第四题
/**
* 从磁盘读取一个文件到内存中,再打印到控制台
*/
@Test
public void testIO5() throws Exception {
String path="D:/HelloWorld.txt";
//创建连接
File file = new File(path);
//获取
FileInputStream fileInputStream = new FileInputStream(file);
//提取
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line="";
while ((line = bufferedReader.readLine()) !=null){
System.out.println(line);
}
fileInputStream.close();
inputStreamReader.close();
bufferedReader.close();
}
第五题
/**
* 在程序中写一个"HelloJavaWorld你好世界"输出到操作系统文件Hello.txt文件中
*/
@Test
public void test6() throws Exception {
String path = "D:/Hello.txt";
File file = new File(path);
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write("袁子祥你是最棒的".getBytes(StandardCharsets.UTF_8));
fileOutputStream.flush();
fileOutputStream.close();
}
第六题
/**
* 拷贝一张图片,从一个目录到另外一个目录下(PS:是拷贝是不是移动)
*/
@Test
public void testIO7() throws Exception {
File oldFile = new File("D:/IOTest");
File newFile = new File("D:/Haha");
FileInputStream inputStream = new FileInputStream(oldFile);
FileOutputStream fileOutputStream = new FileOutputStream(newFile);
int len = 0;
byte[] buf = new byte[1024];
while ((len = inputStream.read(buf)) != -1) {
// 3、把读取到的字节流写入到目的地址的文件里面
fileOutputStream.write(buf, 0, len);
}
fileOutputStream.flush();
inputStream.close();
fileOutputStream.close();
}
新手上路,如有不对,请多多指教,谢谢