❶ 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) {
}
}