java将两个文本文件的内容复制到另一个文件中

Python084

java将两个文本文件的内容复制到另一个文件中,第1张

主要是用到java里面的i/o流。代码例子如下:

import java.io.BufferedReaderimport java.io.Fileimport java.io.FileInputStreamimport java.io.FileNotFoundExceptionimport java.io.FileOutputStreamimport java.io.FileWriterimport java.io.IOExceptionimport java.io.InputStreamimport java.io.InputStreamReader/** * java读写文件,复制文件 * 读取d:/1.txt文件内容,写入f:/text.txt文件中. * @author young * */public class FileWriterTest {// 读写文件public static void rwFile(){FileWriter fw = null BufferedReader br = null try {fw = new FileWriter("f:\\text.txt", true) br = new BufferedReader(new InputStreamReader(new FileInputStream("d:\\1.txt"), "UTF-8")) String line = null while ((line = br.readLine()) != null) {System.out.println("文件内容: " + line) fw.write(line) fw.flush() }br.close() } catch (FileNotFoundException e) {e.printStackTrace() } catch (IOException e) {e.printStackTrace() } finally {if (fw != null) {try {fw.close() } catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace() }}}} public static void main(String[] args) {rwFile() }}

首先在D盘新建文件1.txt,输入任意内容。然后执行java代码即可。

import java.io.BufferedReader

import java.io.File

import java.io.FileReader

import java.io.FileWriter

import java.io.IOException

public class FileCopy {

static final String fromeFile = "c:\\test1.txt"

static final String toFile = "c:\\test2.txt"

public static void main(String args[]) {

try {

BufferedReader read = new BufferedReader(new FileReader(new File(fromeFile)))

FileWriter write = new FileWriter(new File(toFile), true)

String temp

while((temp = read.readLine())!=null){

write.write(temp)

}

write.close()

read.close()

System.out.println("内容已从"+fromeFile+"复制追加到"+toFile)

} catch (IOException e) {

e.printStackTrace()

}

}

}

造成乱码有很多的原因:比如文件编码等

但是这段程序乱码是因为字符流和字节流混用造成的乱码

读取是用的带缓冲区的字符流 BufferedReader  这是按字符读入

写入磁盘是的是字节流 FileOutputStream        这是按字节写出

解决办法,配套使用,字符流和字节流

一:下面使用字节流复制文本

import java.io.File

import java.io.FileInputStream

import java.io.FileOutputStream

public class Demo {

public static void main(String[] args) throws Exception {

File file = new File("c:\\123.txt")

FileOutputStream fos = new FileOutputStream(new File("C:\\123COPY.txt"))

FileInputStream br = new FileInputStream(file)

int len

while((len=br.read())!=-1){

fos.write(len)

}

br.close()

fos.close()

}

}

二:下面使用字符流复制文本

import java.io.BufferedReader

import java.io.BufferedWriter

import java.io.File

import java.io.FileReader

import java.io.FileWriter

public class Demo2 {

public static void main(String[] args) throws Exception {

File file = new File("c:\\123.txt")

BufferedReader br = new BufferedReader(new FileReader(file))

BufferedWriter bw = new BufferedWriter(new FileWriter(new File("c:\\123copy.txt")))

//使用BufferedReader的时候,按照习惯,一般不会使用br.read()方法,

//大家最喜欢用BufferedReader,因为他每次可以读取一行,非常方便

String temp

while((temp=br.readLine())!=null){

bw.write(temp)//每次写入一行.

bw.newLine()//并且进行换行

}

br.close()

bw.close()

}

}