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