❶ java高手请进!求一个JAVA程序:将一个文件中的内容复制到另一个文件中。
最简单的io流问题,不用什么高手,
我给你写个方法,参数是2个字符串,第一个写原文件的全路径,第二个写目标文件的全路进。 你试试吧
public void (String fromFilePath, String toFilePath) {
try {
FileInputStream fis = new FileInputStream(fromFilePath);
FileOutputStream fos = new FileOutputStream(toFilePath);
byte[] b = new byte[100];
try {
while (fis.read(b) != (-1)) {
fos.write(b);
}
if (fis != null) {
fis.close();
fis = null;
}
if (fos != null) {
fos.flush();
fos.close();
fos = null;
}
} catch (IOException e) {
System.out.println("io异常");
}
} catch (FileNotFoundException e) {
System.out.println("源文件不存在");
}
public static void main(String[] args) {
//自己把路径补齐,别忘了!!!!!!!!!!!!!!!!
String fromFilePath=" "; // 源文件的全路径。 比方"d://myphoto//nihao.mp3"
String toFilePath=" "; //目标文件的全路劲。 如果不存在会自动建立,如存在则在文件尾继续添加
new CopyTest().(fromFilePath, toFilePath);
}
}
❷ java如何从后缀为log的文件中提取数据
public static void main(String[] args) {
String fromFile = System.getProperty("user.dir") + File.separatorChar + "user.info";
String toFile = System.getProperty("user.dir") + File.separatorChar + "user1.info";
Reader r = null;
Writer w = null;
try {
r = new FileReader(fromFile);
w = new FileWriter(toFile);
} catch (IOException e) {
System.out.println(e.getMessage());
System.exit(0);
}
BufferedReader br = new BufferedReader(r);
BufferedWriter bw = new BufferedWriter(w);
// int s = -1;
String line = null;
try {
// while ((s = br.read()) != -1) {
// System.out.print((char)s);
// bw.write(s);
// }
while ((line = br.readLine()) != null) {
System.out.println(line);
bw.write(line);
bw.newLine();
// bw.write("\t\n");
}
bw.flush();
} catch (IOException e) {
System.out.println(e.getMessage());
} finally {
try {
bw.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
try {
br.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
看不看得懂就是你的事了,不做解答。
❸ JAVA读取文件夹大小的几种方法实例
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
public class Test {
public static void main(String[] args) throws Exception {
String searchStr = "APPTYPEID";
File searchDir = new File("D:\\xampp\\htdocs\\discuz");
List<Search> list = new ArrayList<Search>();
Collection<File> files = FileUtils.listFiles(searchDir, null, true);
List<String> lines = null;
for (File file : files) {
lines = FileUtils.readLines(file);
for (int i = 0; i < lines.size(); i++) {
if (lines.get(i).indexOf(searchStr) != -1) {
Search s = new Search();
s.setFilename(file.getName());
s.setLine(i + 1);
s.setContent(lines.get(i));
list.add(s);
}
}
}
StringBuffer sb = new StringBuffer();
for (Search s : list) {
sb.append(s.getFilename() + " , " + s.getLine() + " , " + s.getContent()).append(
IOUtils.LINE_SEPARATOR);
}
FileUtils.writeStringToFile(new File("D:\\search.txt"), sb.toString(), "UTF-8");
}
}
class Search {
private String filename;
private int line;
private String content;
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public void setLine(int line) {
this.line = line;
}
public int getLine() {
return line;
}
}
❹ java指定文件夹下查找固定的字符串并将其所在的文件名,行数,该行全部内容写入txt文件中(具体实例)
除非你指定查找的文件都是文本文件,如果是EXCEL等复杂格式的文件,就不一定能达到你的要求了。
下边是只针对文件本文件的方法。
andygulin 的只是不能遍历子文件夹。
--------------------------------------------------------------------
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) throws Exception {
File root = new File("D:\\test");
String find = null;
List<String> result = new ArrayList<String>();
execute(root, find, result);
FileWriter fw = new FileWriter("D:\\result.txt");
for (String data : result) {
fw.write(data + "\r\n");
}
fw.close();
}
public static void execute(File root, String find, List<String> result)
throws Exception {
if (root.isFile()) {
return;
}
File[] files = root.listFiles();
for (File file : files) {
if (file.isDirectory()) {
execute(file, find, result);
} else if (file.isFile()) {
fileHandler(file, find, result);
}
}
}
public static void fileHandler(File file, String find, List<String> result)
throws Exception {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
try {
int lineIndex = 0;
StringBuffer linenums = new StringBuffer("line:[");
boolean isSave = false;
while (br.ready()) {
String line = br.readLine();
lineIndex++;
if (line.indexOf(find) != -1) {
linenums.append(lineIndex).append(",");
isSave = true;
}
}
if (isSave) {
linenums.delete(linenums.length() - 1, linenums.length());
linenums.append("]");
result.add(file.getPath());
result.add(linenums.toString());
}
} finally {
br.close();
fr.close();
}
}
}
❺ 怎么用java实现将一个文件的内容复制到另一个文件内容的后面
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
publicclassFileCopy{
staticfinalStringfromeFile="c:\test1.txt";
staticfinalStringtoFile="c:\test2.txt";
publicstaticvoidmain(Stringargs[]){
try{
BufferedReaderread=newBufferedReader(newFileReader(newFile(fromeFile)));
FileWriterwrite=newFileWriter(newFile(toFile),true);
Stringtemp;
while((temp=read.readLine())!=null){
write.write(temp);
}
write.close();
read.close();
System.out.println("内容已从"+fromeFile+"复制追加到"+toFile);
}catch(IOExceptione){
e.printStackTrace();
}
}
}
❻ JAVA编程题:创建AppendDemo类,将t1.txt中的内容添加到t2.txt中。
代码如下,修改下文件路径即可在本机测试:
publicclassAppendDemo{
/**
*将fromFile文件追加到toFile中
*
*@paramfromFile
*@paramtoFile
*@throwsIOException
*/
publicstaticvoidappendFile(StringfromFile,StringtoFile)throwsIOException{
BufferedReaderis=newBufferedReader(newInputStreamReader(newFileInputStream(fromFile),"gbk"));//考虑中文乱码
BufferedWriteros=newBufferedWriter(newFileWriter(toFile,true));//后面的true表示追加
Stringline;
while((line=is.readLine())!=null){
System.out.println(line);
os.write(line);
}
is.close();
os.close();
}
publicstaticvoidmain(String[]args){
StringfileName1="E:\t1.txt";
StringfileName2="E:\t2.txt";
try{
appendFile(fileName1,fileName2);
}catch(IOExceptione){
e.printStackTrace();
}
}
}
亲,如果回答满意且正确,请及时采纳,你的配合是我回答的动力,谢谢!!
❼ java 一个文件内容写入或追加到另一个文件和一个文件内容复制到另一个文件在方法上有什么区别吗
楼上的审题,人家题主问的是“文件追加写入”和“文件复制”有没有区别,不是问你怎么实现文件追加复制。
我觉得吧这个得看你的两段代码了,其实想来是没有区别的,复制的本质还是先读文件,再把读出来的东西写到目标文件了。关键在于调用write()方法时追加标志append是true还是false,追加标志默认是false的,也就是不追加,直接覆盖目标文件。
❽ (Java)读一个文本文件,将文件中的所有字符都转变为大写,然后写回到原文件中哪位高手能告诉我啊
说一下你错误的原因吧:看一下你的这两行代码:
1、while((b=input.read())!=-1)
2、 while(((b=input.read())!=-1) && ((b=input.read())!=32))
第1次(while)执行完毕的时候文件,读取文件的指针已经到达末尾了,你的第2步继续用(while)从里面读取,肯定是空的,所以后面的执行都不能继续下去。你可以看下参看一下我的代码,功能基本实现了的。
package javaTest;
import java.io.*;
public class CharTest {
//如何用java实现统计文本中的字符数(分包含不包含空格)
//及将大写字母转换为小写字母后复制到另一个文件
FileReader fr=null;
FileWriter fw=null;
BufferedReader br=null;
BufferedWriter bw=null;
String value=null;
String value2="";
int lon;
public static void main(String[] args) {
new CharTest();
}
public CharTest(){
try {
fr=new FileReader("d:/1.txt");
br=new BufferedReader(fr);
while((value=br.readLine())!=null){
value2+=value;
}
//1统计读取到多少个字符
lon=value2.length();
System.out.println("一共读取到"+lon+"个字符");
//2将读取到的数据以空格的方式分割以后放入字符数组中
String string[]=value2.split(" ");
//3统计一共有多少个空格
System.out.println("空格字符数为"+(string.length-1));
//4、将读取到得内容转换成小写
String lowerCase=value2.toLowerCase();
//5、将转换以后的字符串写入到另一个文件中区
fw=new FileWriter("d:/2.txt");
bw=new BufferedWriter(fw);
bw.write(lowerCase);
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(br!=null){
br.close();
}
if(fr!=null){
fr.close();
}
if(bw!=null){
bw.close();
}
if(fw!=null){
fw.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
❾ 怎样使用java将其输入到txt文件中
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.io.PrintStream;
importjava.io.PrintWriter;
importjava.io.RandomAccessFile;
publicclassWriteStringToTxt{
publicvoidWriteStringToFile(StringfilePath){
try{
Filefile=newFile(filePath);
PrintStreamps=newPrintStream(newFileOutputStream(file));
ps.println("http://www.jb51.net");//往文件里写入字符串
ps.append("http://www.jb51.net");//在已有的基础上添加字符串
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicvoidWriteStringToFile2(StringfilePath){
try{
FileWriterfw=newFileWriter(filePath,true);
BufferedWriterbw=newBufferedWriter(fw);
bw.append("在已有的基础上添加字符串");
bw.write("abc ");//往已有的文件上添加字符串
bw.write("def ");
bw.write("hijk");
bw.close();
fw.close();
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicvoidWriteStringToFile3(StringfilePath){
try{
PrintWriterpw=newPrintWriter(newFileWriter(filePath));
pw.println("abc");
pw.println("def");
pw.println("hef");
pw.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicvoidWriteStringToFile4(StringfilePath){
try{
RandomAccessFilerf=newRandomAccessFile(filePath,"rw");
rf.writeBytes("op ");
rf.writeBytes("app ");
rf.writeBytes("hijklllll");
rf.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicvoidWriteStringToFile5(StringfilePath){
try{
FileOutputStreamfos=newFileOutputStream(filePath);
Strings="http://www.jb51.netl";
fos.write(s.getBytes());
fos.close();
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
StringfilePath="E:\link.txt";
//newWriteStringToTxt().WriteStringToFile(filePath);
//newWriteStringToTxt().WriteStringToFile2(filePath);
//newWriteStringToTxt().WriteStringToFile3(filePath);
//newWriteStringToTxt().WriteStringToFile4(filePath);
newWriteStringToTxt().WriteStringToFile5(filePath);
}
}
❿ 如何连续对某个文本文件写内容,java 的
private static List<jbxx> l=new ArrayList<jbxx>();///装数据的集合
public static void main(String[] args) {
jbxx bx=new jbxx();//一个bean,从数据库查出来的每条数据封装进一个bean里,然后用List装
bx.setName("李欧");
bx.setAge(22);
l.add(bx);
bx=new jbxx();
bx.setName("怪力");
bx.setAge(28);
l.add(bx);
sjdrtxt();//调用写入TXT方法
}
public static void sjdrtxt(){
try {
File f=new File("e://a.txt");//定义一个File类
String n="";
if(f.isFile()){//看看这文件有不,有的话读取
InputStream in=new FileInputStream(f);//把File放入文件输入流
//in.available()读取该文件总字节数;如果太大你就改成new byte[1024]
byte[] b=new byte[in.available()];
int o=0;
while((o=in.read(b))>0){//如果文件有内容读取 放进String里
n=new String(b,0,o);
}
in.close();///完了之后关掉输入流
}
OutputStream out=new FileOutputStream(f);//打开个输出流;这时文件会重写
out.write(n.getBytes());//把之前的写进去
out.flush();//刷新输出流
if(l!=null&&!l.isEmpty()){//集合里有数据的话就搞出来
for(int i=0;i<l.size();i++){//循环
jbxx x=(jbxx)l.get(i);//以bean读取数据
out.write((x.getName()+","+x.getAge()+"\r\n").getBytes());//"\r\n"是回车
out.flush();
}
l.clear();//进去了TXT后,最后最好把List清空,再来100条也不会那么容易爆掉了
}
out.close();//关闭输出流
System.out.println("ok");
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
}