java寫入txt
⑴ 如何用java寫入txt,每次運行都覆蓋前一次的內容(多行數據)
你把FileOutputStream out = new FileOutputStream(file, true);這里的true改為false或者不寫,
當有true修飾時代表當該文件已經存在時在文件後繼續寫
而當為false或預設時,若該文件名已經存在則會覆蓋原文件
⑵ java 寫入txt文件的中文亂碼是怎麼回事
原因是寫入時使用的字元編碼和期望的不一致導致的。
⑶ java讀取、修改、寫入txt文件
模擬:先創建一個TXT文件(內容來自控制台);然後讀取文件並在控制台輸出;最後實現對新創建的TXT文件(的數據進行排序後)的復制。分別對應三個函數,調用順序需要注意:創建、讀取、復制。
效果圖如下:綠色部分為控制台輸入的內容(當輸入end時,結束)
packagecom.;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.FileReader;
importjava.io.IOException;
importjava.io.OutputStreamWriter;
importjava.util.Arrays;
importjava.util.Scanner;
importjava.util.Vector;
publicclassCreateAndReadTxt{
//文件名稱
publicstaticStringfileName=".txt";
publicstaticStringnewFileName=".txt";
//文件路徑
publicfinalstaticStringURL=System.getProperty("user.dir");
//CreateAndReadTxt.class.getResource("/").getPath();
//創建TXT文件
publicstaticvoidcreateTxtFile(StringfName,StringfileContent){
//創建文件
fileName=fName+fileName;
Filefile=newFile(fileName);
//可以更改
file.setWritable(true);
//判斷當前路徑下是否存在同名文件
booleanisExist=file.exists();
if(isExist){
//文件存在,刪除
file.delete();
}
//寫入文件
try{
//文件寫入對象
FileOutputStreamfos=newFileOutputStream(file);
//輸入流寫入----默認字元為GBK
OutputStreamWriterosw=newOutputStreamWriter(fos);
//寫入
osw.write(fileContent);
//寫入完畢後關閉
osw.close();
System.out.println("成功創建文件: "+fileName);
}catch(IOExceptione){
System.out.println("寫入文件失敗: "+e.getMessage());
}
}
//閱讀文件
publicstaticvoidreadFile(StringfileName){
System.out.println("開始讀取文件: "+fileName);
//產生文件對象
Filefile=newFile(fileName);
//
try{
//字元讀取
FileReaderfr=newFileReader(file);
//緩沖處理
BufferedReaderbr=newBufferedReader(fr);
Stringstr="";
while((str=br.readLine())!=null){
System.out.println(str);
}
//關閉
br.close();
fr.close();
}catch(FileNotFoundExceptione){
System.out.println("讀取文件失敗: "+e.getMessage());
}catch(IOExceptione){
System.out.println("讀取文件失敗: "+e.getMessage());
}
}
//文件復制
publicstaticvoidFile(StringfromFileName,StringtoFileName){
//讀取文件
Filefile=newFile(fromFileName);
try{
FileReaderfr=newFileReader(file);
BufferedReaderbr=newBufferedReader(fr);
//定義接收變數
Vector<Double>vec=newVector<Double>();
Strings="";
while(null!=(s=br.readLine())){
vec.add(Double.parseDouble(s));
}
br.close();
fr.close();
//保存到數組並進行排序
Doubledou[]=newDouble[vec.size()];
vec.toArray(dou);
Arrays.sort(dou);
System.out.println("========復制文件=========");
//寫入新文件
newFileName="副本"+newFileName;
FilenewFile=newFile(toFileName);
FileOutputStreamfos=newFileOutputStream(newFile,true);
OutputStreamWriterosm=newOutputStreamWriter(fos);
for(Doubled:dou){
osm.write(d.doubleValue()+"
");
}
osm.close();
fos.close();
}catch(FileNotFoundExceptione){
System.out.println("讀取文件失敗: "+e.getMessage());
}catch(IOExceptione){
System.out.println("讀取文件失敗: "+e.getMessage());
}
}
publicstaticvoidmain(String[]args){
/**
*構造數據
*/
Scannerscan=newScanner(System.in);
StringBuildersb=newStringBuilder();
Strings="";
while(!("end".equals(s=scan.next()))){//當輸入end時,結束
sb.append(s);
sb.append("
");
}
scan.close();
/**
*使用數據
*/
CreateAndReadTxt.createTxtFile("creat",sb.toString());
CreateAndReadTxt.readFile(fileName);
System.out.println(fileName);
CreateAndReadTxt.File(fileName,newFileName);
CreateAndReadTxt.readFile(newFileName);
}
}
⑷ Java往TXT文件寫入文字的問題
代碼如下:
File file4 = new File("FileTextCopy2.java");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("請輸入內容:\n");
try {
String happyString ;
BufferedWriter writer = new BufferedWriter(FileWriter(file4));
while(!(happyString=in.readLine()).equalsIgnoreCase("exit")){
System.out.println("您輸入的內容是:\""+happyString+"\",正在存儲中");
writer.write(happyString+"\n");
writer.flush();
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
寫入文件的時候最好也用帶緩沖的方法,對提升程序效率有幫助。
如果希望馬上看到寫入的效果,就執行一下flush,強制將內容立即寫入文件
」修改建議
回答含有復制內容
咦?您的答案和別的答案長的太像了,簡直就是雙胞胎,其實….分享自己的原創知識才是件最有性格的事,快去修改自己的回答吧。「
。。。原來的答案是對的,新的代碼只是改進了緩沖寫入和調用flush的位置
⑸ java 怎麼將數據寫入TXT文件
定義一個輸出文件,然後輸出就可以了,具體見下面的代碼
importjava.io.*;
publicclassStreamDemo
{
publicstaticvoidmain(Stringargs[])
{
Filef=newFile("c:\temp.txt");
OutputStreamout=null;
try
{
out=newFileOutputStream(f);
}
catch(FileNotFoundExceptione)
{
e.printStackTrace();
}
//將字元串轉成位元組數組
byteb[]="HelloWorld!!!".getBytes();
try
{
//將byte數組寫入到文件之中
out.write(b);
}
catch(IOExceptione1)
{
e1.printStackTrace();
}
try
{
out.close();
}
catch(IOExceptione2)
{
e2.printStackTrace();
}//以下為讀文件操作
InputStreamin=null;
try
{
in=newFileInputStream(f);
}
catch(FileNotFoundExceptione3)
{
e3.printStackTrace();
}
//開辟一個空間用於接收文件讀進來的數據
byteb1[]=newbyte[1024];
inti=0;
try
{
//將b1的引用傳遞到read()方法之中,同時此方法返回讀入數據的個數
i=in.read(b1);
}
catch(IOExceptione4)
{
e4.printStackTrace();
}
try
{
in.close();
}
catch(IOExceptione5)
{
e5.printStackTrace();
}
//將byte數組轉換為字元串輸出
System.out.println(newString(b1,0,i));
}
}