Java中IO流文件读取、写入和复制

时间:2023-01-29 20:59:26

//构造文件File类

File f=new File(fileName);

//判断是否为目录

f.isDirectory();

//获取目录下的文件名

String[] fileName=f.list();

//获取目录下的文件
File[] files=f.listFiles();


1、Java怎么读取文件

package com.yyb.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

/*
* 读取文件:
* 1、找到指定的文件
* 2、根据文件创建文件的输入流
* 3、创建字节数组
* 4、读取内容,放到字节数组里面
* 5、关闭输入流
*/
public class FileRead {

public static void main(String[] args) {
// 构建指定文件
File file = new File("E:" + File.separator + "hello.txt");
InputStream in = null;
try {
// 根据文件创建文件的输入流
in = new FileInputStream(file);
// 创建字节数组
byte[] data = new byte[1024];
// 读取内容,放到字节数组里面
in.read(data);
System.out.println(new String(data));
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭输入流
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

}


2、Java怎么写入文件

package com.yyb.file;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

/*
* 写入文件:
* 1、找到指定的文件
* 2、根据文件创建文件的输出流
* 3、把内容转换成字节数组
* 4、向文件写入内容
* 5、关闭输入流
*/
public class FileWriter {

public static void main(String[] args) {
// 构建指定文件
File file = new File("E:" + File.separator + "hello.txt");
OutputStream out = null;
try {
// 根据文件创建文件的输出流
out = new FileOutputStream(file);
String message = "我是好人。";
// 把内容转换成字节数组
byte[] data = message.getBytes();
// 向文件写入内容
out.write(data);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭输出流
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

}



3、Java怎么复制文件

<span style="font-size:18px;">package com.yyb.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
/*
* 实现思路:
* 1、构建源文件与目标文件
* 2、源文件创建输入流,目标文件创建输出流
* 3、创建字节数组
* 4、使用循环,源文件读取一部分内容,目标文件写入一部分内容,直到写完所有内容
* 5、关闭源文件输入流,目标文件输出流
*/
public class FileCopy {

public static void main(String[] args) {
// 构建源文件
File file = new File("E:" + File.separator + "HelloWorld.txt");
// 构建目标文件
File fileCopy = new File("D:" + File.separator + "HelloWorld");
InputStream in = null;
OutputStream out = null;
try {
// 目标文件不存在就创建
if (!(fileCopy.exists())) {
fileCopy.createNewFile();
}
// 源文件创建输入流
in = new FileInputStream(file);
// 目标文件创建输出流
out = new FileOutputStream(fileCopy, true);
// 创建字节数组
byte[] temp = new byte[1024];
int length = 0;
// 源文件读取一部分内容
while ((length = in.read(temp)) != -1) {
// 目标文件写入一部分内容
out.write(temp, 0, length);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭文件输入输出流
in.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

}</span><span style="font-size: 24px;">
</span>