主要有用到java原生態的Io類,沒有第三個包。直接上代碼:
importjava.io.*;
publicclasswrite{
publicstaticvoidmain(String[]args){
write("E://123.txt","hello");
}
publicstaticvoidwrite(Stringpath,Stringcontent){
try{
Filef=newFile(path);
if(f.exists()){
System.out.println("文件存在");
}else{
System.out.println("文件不存在,正在創建...");
if(f.createNewFile()){
System.out.println("文件創建成功!");
}else{
System.out.println("文件創建失敗!");
}
}
BufferedWriteroutput=newBufferedWriter(newFileWriter(f));
output.write(content);
output.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
『貳』 Java如何實現讀取一個txt文件的所有內容,然後提取所需的部分並把它寫入到另一個txt文件中
代碼如下:
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.util.ArrayList;
importjava.util.List;
publicclassApp{
/**
*保存list到指定文件
*@paramlist
*@paramfilePath
*@throwsIOException
*@throwsFileNotFoundException
*/
staticvoidsave(List<String>list,StringfilePath)throwsFileNotFoundException,IOException{
try(FileOutputStreamoutputStream=newFileOutputStream(filePath);
=newOutputStreamWriter(outputStream);
BufferedWriterwriter=newBufferedWriter(streamWriter)
){
for(Stringline:list){
writer.write(line+System.lineSeparator());
}
}
}
publicstaticvoidmain(String[]args)throwsIOException{
List<String>list1=newArrayList<>();
List<String>list2=newArrayList<>();
List<String>list3=newArrayList<>();
Filefile=newFile("d:/temp/0.txt");
try(FileInputStreamstream=newFileInputStream(file);
InputStreamReaderstreamReader=newInputStreamReader(stream);
BufferedReaderreader=newBufferedReader(streamReader)){
Stringline="";
while((line=reader.readLine())!=null){
//去除開始的數字
line=line.replaceFirst("\d+","");
if(line.contains("Organ")){
//包含Organ放入list1
list1.add(line);
}elseif(line.contains("Location")){
//包含Location放入list2
list2.add(line);
}elseif(line.contains("Person")){
//包含Person放入list3
list3.add(line);
}
}
}
if(!list1.isEmpty()){
save(list1,"d:/temp/1.txt");
}
if(!list2.isEmpty()){
save(list2,"d:/temp/2.txt");
}
if(!list3.isEmpty()){
save(list3,"d:/temp/3.txt");
}
}
}
『叄』 java 中簡述使用流進行讀寫文本文件的步驟
讀寫是兩個不同的分支,通常都是分開單獨使用的。
可以通過BufferedReader 流的形式進行流緩存,之後通過readLine方法獲取到緩存的內容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
while ((str = bre.readLine())!= null) // 判斷最後一行不存在,為空結束循環
{
System.out.println(str);//原樣輸出讀到的內容
};
備註: 流用完之後必須close掉,如上面的就應該是:bre.close(),否則bre流會一直存在,直到程序運行結束。
可以通過「FileOutputStream」創建文件實例,之後過「OutputStreamWriter」流的形式進行存儲,舉例:
OutputStreamWriter pw = null;//定義一個流
pw = new OutputStreamWriter(new FileOutputStream(「D:/test.txt」),"GBK");//確認流的輸出文件和編碼格式,此過程創建了「test.txt」實例
pw.write("我是要寫入到記事本文件的內容");//將要寫入文件的內容,可以多次write
pw.close();//關閉流
備註:文件流用完之後必須及時通過close方法關閉,否則會一直處於打開狀態,直至程序停止,增加系統負擔。
『肆』 java如何從資料庫讀取數據並寫入txt文件
寫Java程序時經常碰到要讀如txt或寫入txt文件的情況,但是由於要定義好多變數,經常記不住,每次都要查,特此整理一下,簡單易用,方便好懂!
[java]viewplain
packagee.thu.keyword.test;
importjava.io.File;
importjava.io.InputStreamReader;
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.FileInputStream;
importjava.io.FileWriter;
publicclasscin_txt{
staticvoidmain(Stringargs[]){
try{//防止文件建立或讀取失敗,用catch捕捉錯誤並列印,也可以throw
/*讀入TXT文件*/
Stringpathname="D:\twitter\13_9_6\dataset\en\input.txt";//絕對路徑或相對路徑都可以,這里是絕對路徑,寫入文件時演示相對路徑
Filefilename=newFile(pathname);//要讀取以上路徑的input。txt文件
InputStreamReaderreader=newInputStreamReader(
newFileInputStream(filename));//建立一個輸入流對象reader
BufferedReaderbr=newBufferedReader(reader);//建立一個對象,它把文件內容轉成計算機能讀懂的語言
Stringline="";
line=br.readLine();
while(line!=null){
line=br.readLine();//一次讀入一行數據
}
/*寫入Txt文件*/
Filewritename=newFile(".\result\en\output.txt");//相對路徑,如果沒有則要建立一個新的output。txt文件
writename.createNewFile();//創建新文件
BufferedWriterout=newBufferedWriter(newFileWriter(writename));
out.write("我會寫入文件啦 ");// 即為換行
out.flush();//把緩存區內容壓入文件
out.close();//最後記得關閉文件
}catch(Exceptione){
e.printStackTrace();
}
}
}
『伍』 java讀取、修改、寫入txt文件
Java IO系統里讀寫文件使用和Writer兩個抽象類,Reader中read()和close()方法都是抽象方法。Writer中 write(),flush()和close()方法為抽象方法。子類應該分別實現他們。
Java IO已經為我們提供了三個方便的Reader的實現類,FileReader,InputStreamReader和BufferedReader。其中最重要的類是InputStreamReader, 它是位元組轉換為字元的橋梁。你可以在構造器重指定編碼的方式,如果不指定的話將採用底層操作系統的默認編碼方式,例如GBK等。
FileReader讀txt文件例子
FileReader fr = new FileReader("D:/Test.txt");
int ch = 0;
while((ch = fr.read())!=-1 ){
System.out.print( (char)ch );
}
其中read()方法返回的是讀取得下個字元。
InputStreamReader讀txt文件例子
InputStream is = new FileInputStream(new File("D:/Test.txt"));
InputStreamReader fr = new InputStreamReader(is);
int ch = 0;
while((ch = fr.read())!=-1 ){
System.out.print((char)ch);
}
這和FileReader並沒有什麼區別,事實上在FileReader中的方法都是從InputStreamReader中繼承過來的。 read()方法是比較好費時間的,如果為了提高效率,我們可以使用BufferedReader對Reader進行包裝,這樣可以提高讀取得速度,我們可以一行一行的讀取文本,使用 readLine()方法。
BufferedReader br = new BufferedReader(new FileReader("Test.txt")));
String data = br.readLine();//一次讀入一行,直到讀入null為文件結束
while( data!=null){
System.out.println(data);
data = br.readLine(); //接著讀下一行
}
當你明白了如何用Reader來讀取文本文件的時候那麼用Writer寫文件同樣非常簡單。有一點需要注意,當你寫文件的時候,為了提高效率,寫入的數據會先放入緩沖區,然後寫入文件。因此有時候你需要主動調用flush()方法。
有讀就有寫,寫文本文件可以使用PrintWriter,FileWriter,BufferedWriter。
FileWriter fw = new FileWriter("D:/Test.txt");
String s = "hello world";
fw.write(s,0,s.length());
fw.flush();
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:/Test1.txt"));
osw.write(s,0,s.length());
osw.flush();
PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("D:/Test2.txt")),true);
pw.println(s);
fw.close();
osw.close();
pw.close();
如果想接著寫入某個文件。 聲明時FileWriter fw = new FileWriter("log.txt",true);加個true就可以了。
File file = new File("D:/Test.txt");
File dest = new File("D:/new.txt");
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
BufferedWriter writer = new BufferedWriter(new FileWriter(dest));
String line = reader.readLine();
while(line!=null){
writer.write(line);
line = reader.readLine();
}
writer.flush();
reader.close();
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
『陸』 java中如何從txt文件中一行一行讀取漢字,再存到另一txt文件中
BufferedReader一行一行的讀
PrintWriter一行一行的寫
try(BufferedReaderreader=Files.newBufferedReader(Paths.get("D:\Temp","天下無雙.txt"),Charset.forName("GBK"));
PrintWriterwriter=newPrintWriter("D:\Temp\天下無雙U.txt","UTF-8")){
for(Stringline=reader.readLine();line!=null;line=reader.readLine()){
writer.println(line);
}
}catch(IOExceptionxe){
System.err.println(xe.getMessage());
}
『柒』 用java語言編寫程序,把一個已存在的txt文件讀出來並寫進另一個txt文件中.
importjava.io.BufferedReader;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
publicclassCopyDemo{
publicstaticvoidmain(String[]args)throwsException{
//選擇你要讀取的文件
FileInputStreamfis=newFileInputStream("E:\聖彼得的送葬隊伍下.txt");
//選擇你要存放的文件
FileOutputStreamfos=newFileOutputStream("E:\.txt");
//byte[]buf=newbyte[1024];
// BufferedReaderbufr=newBufferedReader(buf);
intlen;
while((len=fis.read())!=-1){
fos.write(len);
}
fis.close();
fos.close();
}
}