怎么用JAVA把一个文件写到另个文件
答案:2 悬赏:40 手机版
解决时间 2021-03-16 06:51
- 提问者网友:流星是天使的眼泪
- 2021-03-15 17:14
怎么用JAVA把一个文件写到另个文件
最佳答案
- 五星知识达人网友:执傲
- 2021-03-15 18:33
我这个方法能读取以.js和.java结尾的文件,只需要指定.js和.java在哪个路径下即可!
可以读取多个文件写到一个目标文件中。
public class FileReader {
// 读取符合要求的文件,忽略其他文件
static boolean copy(String[] str){
// 目标文件夹,没有自动创建
File targetDir = new File("D:");
// 参数str,传入源文件夹目录以及选择的文件
File srcDir = new File(str[0]);
final String str_java = str[1];
final String str_cs = str[2];
// 源文件夹不存在,则返回
if (!srcDir.exists()) {
return false;
} else {
// 查找所有的java文件
File[] arr = srcDir.listFiles(new FileFilter() {
public boolean accept(File f) {
// 当选择时,将标识置为1
int[] arr1 = new int[3];
// 没有选择java文件
if (null == str_java || "".equals(str_java)) {
arr1[1] = 1;
}
// 没有选择cs文件
if (null == str_cs || "".equals(str_cs)) {
arr1[2] = 1;
}
// 全选
if (arr1[1] == 0 && arr1[2] == 0) {
arr1[0] = 1;
}
// 当前文件为文件夹时,返回false
if (f.isDirectory()) {
return false;
} else if (arr1[0] == 1) {
// java和cs文件
if (f.getName().endsWith(".java")) {
return f.getName().endsWith(".java");
} else if (f.getName().endsWith(".cs")) {
return f.getName().endsWith(".cs");
}
} else if (arr1[1] == 1) {
// cs文件
if (f.getName().endsWith(".cs")) {
return f.getName().endsWith(".cs");
} else {
return false;
}
} else if (arr1[2] == 1) {
// java文件
if (f.getName().endsWith(".java")) {
return f.getName().endsWith(".java");
} else
return false;
}
return false;
}
});
String targetPath = targetDir.getPath();
// 文件路径
File f = new File(targetPath);
// 如果文件夹不存在,则创建新文件夹
if (!f.exists()) {
f.mkdirs();
}
StringBuilder sb = new StringBuilder();
// 目标文件的绝对路径
String targetFile = targetPath + File.separatorChar + "Code.txt";
PrintWriter out = null;
try {
out = new PrintWriter(new BufferedWriter(
new FileWriter(targetFile)));
} catch (IOException e) {
return false;
}
int i = 0;
// 遍历符合条件的文件
for (File file : arr) {
i++;
// 截取当前文件名称
String name = file.getName();
int index = name.indexOf('.');
name = name.substring(0, index);
BufferedInputStream in = null;
try {
in = new BufferedInputStream(
new FileInputStream(file.getPath()), 8192);
} catch (FileNotFoundException e) {
return false;
}
// 缓存
byte[] buffer = new byte[4096];
int length = -1;
sb.append("对象名:" + name);
sb.append("\r\n");
// 读取数据
try {
while ((length = in.read(buffer)) != -1) {
// 读取文件
String s = new String(buffer, 0, length);
sb.append(s);
}
} catch (IOException e) {
e.printStackTrace();
}
sb.append("\r\n");
try {
in.close();
} catch (IOException e) {
return false;
}
}
out.println(sb.toString());
out.flush();
out.close();
if (i > 0) {
return true;
} else {
return false;
}
}
}
}
可以读取多个文件写到一个目标文件中。
public class FileReader {
// 读取符合要求的文件,忽略其他文件
static boolean copy(String[] str){
// 目标文件夹,没有自动创建
File targetDir = new File("D:");
// 参数str,传入源文件夹目录以及选择的文件
File srcDir = new File(str[0]);
final String str_java = str[1];
final String str_cs = str[2];
// 源文件夹不存在,则返回
if (!srcDir.exists()) {
return false;
} else {
// 查找所有的java文件
File[] arr = srcDir.listFiles(new FileFilter() {
public boolean accept(File f) {
// 当选择时,将标识置为1
int[] arr1 = new int[3];
// 没有选择java文件
if (null == str_java || "".equals(str_java)) {
arr1[1] = 1;
}
// 没有选择cs文件
if (null == str_cs || "".equals(str_cs)) {
arr1[2] = 1;
}
// 全选
if (arr1[1] == 0 && arr1[2] == 0) {
arr1[0] = 1;
}
// 当前文件为文件夹时,返回false
if (f.isDirectory()) {
return false;
} else if (arr1[0] == 1) {
// java和cs文件
if (f.getName().endsWith(".java")) {
return f.getName().endsWith(".java");
} else if (f.getName().endsWith(".cs")) {
return f.getName().endsWith(".cs");
}
} else if (arr1[1] == 1) {
// cs文件
if (f.getName().endsWith(".cs")) {
return f.getName().endsWith(".cs");
} else {
return false;
}
} else if (arr1[2] == 1) {
// java文件
if (f.getName().endsWith(".java")) {
return f.getName().endsWith(".java");
} else
return false;
}
return false;
}
});
String targetPath = targetDir.getPath();
// 文件路径
File f = new File(targetPath);
// 如果文件夹不存在,则创建新文件夹
if (!f.exists()) {
f.mkdirs();
}
StringBuilder sb = new StringBuilder();
// 目标文件的绝对路径
String targetFile = targetPath + File.separatorChar + "Code.txt";
PrintWriter out = null;
try {
out = new PrintWriter(new BufferedWriter(
new FileWriter(targetFile)));
} catch (IOException e) {
return false;
}
int i = 0;
// 遍历符合条件的文件
for (File file : arr) {
i++;
// 截取当前文件名称
String name = file.getName();
int index = name.indexOf('.');
name = name.substring(0, index);
BufferedInputStream in = null;
try {
in = new BufferedInputStream(
new FileInputStream(file.getPath()), 8192);
} catch (FileNotFoundException e) {
return false;
}
// 缓存
byte[] buffer = new byte[4096];
int length = -1;
sb.append("对象名:" + name);
sb.append("\r\n");
// 读取数据
try {
while ((length = in.read(buffer)) != -1) {
// 读取文件
String s = new String(buffer, 0, length);
sb.append(s);
}
} catch (IOException e) {
e.printStackTrace();
}
sb.append("\r\n");
try {
in.close();
} catch (IOException e) {
return false;
}
}
out.println(sb.toString());
out.flush();
out.close();
if (i > 0) {
return true;
} else {
return false;
}
}
}
}
全部回答
- 1楼网友:酒者煙囻
- 2021-03-15 19:25
用bufferread把一个文件中的内容读出来,然后写进另一个文件.如果另一个文件不存在,还要写一个创建文件的函数.所以最好前面有一个判断你指定的目录下是否存在另一个文件的判断函数.具体的你可以网上搜一下.很多实现的.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯