A. java怎么用IO流把我println打印的信息输出到文件中
println打印的数据是将结果输出到控制台上,一般log4j要做的其实就是将一些需要输入的数据(大部分情况下都是需要记录的日志)输出的文件中,当然你如果有特殊的需求输入到文件中,你就得依靠java得io 来实现,简单给你写个方法吧,
publicstaticvoidwriteFile(StringoutFileName){
OutputStreamout=null;
BufferedWriterrd=null;
try{
out=newFileOutputStream(outFileName);
//生成UTF-8编码文件
rd=newBufferedWriter(newOutputStreamWriter(out,"utf-8"));
StringoutStr="此处写入你想write到文件里得内容";
rd.write(outStr);
System.out.println(outStr);
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
try{
rd.close();
out.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
publicstaticvoidmain(String[]args){
writeFile("d:/writeTest.txt");
}
B. java中如何将输出结果放入文件中
这个就需要java中的I/O流来对文件进行读写,举个例子:以类来写文件
importjava.io.FileNotFoundException;
importjava.io.FileWriter;
importjava.io.IOException;
publicclassTest{
publicstaticvoidrwFile(){
FileWriterfw=null;
try{
fw=newFileWriter("f:\text.txt",true);
fw.write("123");//这里向文件中输入结果123
fw.flush();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(fw!=null){
try{
fw.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
publicstaticvoidmain(String[]args){
rwFile();
}
}
这个代码是向文件F盘的text.txt中输入123
C. 如何用java从txt读取文本,并处理后输出新的文本
public static void main(String[] args) throws IOException,
ClassNotFoundException {
try {
FileInputStream in = new FileInputStream(//创建输入流
"E:\\0326java\\javase\\src\\io\\TestFileInputStream.java");
FileOutputStream out = new FileOutputStream("E:\\1.txt");//创建输出流
int i = 0;
while ((i = in.read()) != -1) {
System.out.print((char) i);//循环读取文件数据
out.write(i);//每读一个数据输入到1.txt中
}
out.flush();
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
D. java 按行读取一个文件,存在字符串数组里,一个元素对应一行,再将这个数组按行输出到一个新的文件里
java 按行读取一个文件,存在字符串数组里,一个元素对应一行,再将这个数组按行输出到一个新的文件里,代码如下:
packagefoo;
importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.io.OutputStreamWriter;
importjava.util.ArrayList;
importjava.util.List;
/**
*Helloworld!
*
*/
publicclassApp
{
publicstaticvoidmain(String[]args)
{
FilereadFile=newFile("D://home/a.txt");
InputStreamin=null;
InputStreamReaderir=null;
BufferedReaderbr=null;
OutputStreamout=null;
OutputStreamWriterow=null;
BufferedWriterbw=null;
try{
//用流读取文件
in=newBufferedInputStream(newFileInputStream(readFile));
//如果你文件已utf-8编码的就按这个编码来读取,不然又中文会读取到乱码
ir=newInputStreamReader(in,"utf-8");
br= newBufferedReader(ir);
Stringline="";
//定义集合一行一行存放
List<String>list=newArrayList<String>();
//一行一行读取
while((line=br.readLine())!=null){
System.out.println(line);
list.add(line);
}
//将集合转换成数组
String[]arr=list.toArray(newString[list.size()]);
//写入新文件
FilenewFile=newFile("D://home/b.txt");
if(!newFile.exists()){
newFile.createNewFile();
}
out=newBufferedOutputStream(newFileOutputStream(newFile));
//这里也可以给定编码写入新文件
ow=newOutputStreamWriter(out,"gb2312");
bw=newBufferedWriter(ow);
//遍历数组吧字符串写入新文件中
for(intx=0;x<arr.length;x++){
bw.write(arr[x]);
if(x!=arr.length-1){
//换行
bw.newLine();
}
}
//刷新该流的缓冲,这样才真正写入完整到新文件中
bw.flush();
}catch(Exceptione){
e.printStackTrace();
}finally{
//一定要关闭流,倒序关闭
try{
if(bw!=null){
bw.close();
}
if(ow!=null){
ow.close();
}
if(out!=null){
out.close();
}
if(br!=null){
br.close();
}
if(ir!=null){
ir.close();
}
if(in!=null){
in.close();
}
}catch(Exceptione2){
}
}
}
}