文本文件 java_简单的用java实现读/写文本文件的示例
簡(jiǎn)單的用java實(shí)現(xiàn)讀/寫(xiě)文本文件的示例
更新時(shí)間:2008年07月26日 13:09:26 ? 作者:
同時(shí)也展示了如果從輸入流中讀出來(lái)內(nèi)容寫(xiě)入輸出流中(僅限文本流)
三個(gè)例子可以獨(dú)立存在,所以根據(jù)需要只看其中一個(gè)就行了。
/*
*?簡(jiǎn)單的讀/寫(xiě)文本文件的示例
*?這里包含了三個(gè)例子,即
*?1.?將文件讀入到內(nèi)存(這里是StringBuffer)的例子
*?2.?將內(nèi)容中的文本寫(xiě)到文件
*?3.?將一個(gè)文件的內(nèi)容讀出來(lái)寫(xiě)入另一個(gè)文件中
*????同時(shí)也展示了如果從輸入流中讀出來(lái)內(nèi)容寫(xiě)入輸出流中(僅限文本流)
*?三個(gè)例子可以獨(dú)立存在,所以根據(jù)需要只看其中一個(gè)就行了。
*/
import?java.io.BufferedReader;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.io.OutputStream;
import?java.io.OutputStreamWriter;
import?java.io.PrintStream;
import?java.io.PrintWriter;
public?final?class?AccessTextFile?{
/**
*?1.?演示將流中的文本讀入一個(gè)?StringBuffer?中
*?@throws?IOException
*/
public?void?readToBuffer(StringBuffer?buffer,?InputStream?is)
throws?IOException?{
String?line;????????//?用來(lái)保存每行讀取的內(nèi)容
BufferedReader?reader?=?new?BufferedReader(new?InputStreamReader(is));
line?=?reader.readLine();???????//?讀取第一行
while?(line?!=?null)?{??????????//?如果?line?為空說(shuō)明讀完了
buffer.append(line);????????//?將讀到的內(nèi)容添加到?buffer?中
buffer.append("\n");????????//?添加換行符
line?=?reader.readLine();???//?讀取下一行
}
}
/**
*?2.?演示將?StringBuffer?中的內(nèi)容讀出到流中
*/
public?void?writeFromBuffer(StringBuffer?buffer,?OutputStream?os)?{
//?用?PrintStream?可以方便的把內(nèi)容輸出到輸出流中
//?其對(duì)象的用法和?System.out?一樣
//?(System.out?本身就是?PrintStream?對(duì)象)
PrintStream?ps?=?new?PrintStream(os);
ps.print(buffer.toString());
}
/**
*?3*.?從輸入流中拷貝內(nèi)容到輸入流中
*?@throws?IOException
*/
public?void?copyStream(InputStream?is,?OutputStream?os)?throws?IOException?{
//?這個(gè)讀過(guò)過(guò)程可以參閱?readToBuffer?中的注釋
String?line;
BufferedReader?reader?=?new?BufferedReader(new?InputStreamReader(is));
PrintWriter?writer?=?new?PrintWriter(new?OutputStreamWriter(os));
line?=?reader.readLine();
while?(line?!=?null)?{
writer.println(line);
line?=?reader.readLine();
}
writer.flush();?????//?最后確定要把輸出流中的東西都寫(xiě)出去了
//?這里不關(guān)閉?writer?是因?yàn)?os?是從外面?zhèn)鬟M(jìn)來(lái)的
//?既然不是從這里打開(kāi)的,也就不從這里關(guān)閉
//?如果關(guān)閉的?writer,封裝在里面的?os?也就被關(guān)了
}
/**
*?3.?調(diào)用?copyStream(InputStream,?OutputStream)?方法拷貝文本文件
*/
public?void?copyTextFile(String?inFilename,?String?outFilename)
throws?IOException?{
//?先根據(jù)輸入/輸出文件生成相應(yīng)的輸入/輸出流
InputStream?is?=?new?FileInputStream(inFilename);
OutputStream?os?=?new?FileOutputStream(outFilename);
copyStream(is,?os);?????//?用?copyStream?拷貝內(nèi)容
is.close();?//?is?是在這里打開(kāi)的,所以需要關(guān)閉
os.close();?//?os?是在這里打開(kāi)的,所以需要關(guān)閉
}
public?static?void?main(String[]?args)?throws?IOException?{
int?sw?=?1;?????//?三種測(cè)試的選擇開(kāi)關(guān)
AccessTextFile?test?=?new?AccessTextFile();
switch?(sw)?{
case?1:?//?測(cè)試讀
{
InputStream?is?=?new?FileInputStream("E:\\test.txt");
StringBuffer?buffer?=?new?StringBuffer();
test.readToBuffer(buffer,?is);
System.out.println(buffer);?????//?將讀到?buffer?中的內(nèi)容寫(xiě)出來(lái)
is.close();
break;
}
case?2:?//?測(cè)試寫(xiě)
{
StringBuffer?buffer?=?new?StringBuffer("Only?a?test\n");
test.writeFromBuffer(buffer,?System.out);
break;
}
case?3:?//?測(cè)試拷貝
{
test.copyTextFile("E:\\test.txt",?"E:\\r.txt");
}
break;
}
}
}
相關(guān)文章
hibernate validator提供了一套比較完善、便捷的驗(yàn)證實(shí)現(xiàn)方式。下面小編給大家介紹下springboot使用hibernate validator校驗(yàn)方式,感興趣的朋友一起看看吧2018-01-01
這篇文章主要介紹了Eclipse最新版使用過(guò)程中遇到的問(wèn)題總結(jié)的相關(guān)資料,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
這篇文章主要給大家介紹了關(guān)于如何利用Java實(shí)現(xiàn)復(fù)制Excel工作表功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
這篇文章主要介紹了java讀取properties配置文件的方法,涉及java操作properties配置文件的相關(guān)技巧,需要的朋友可以參考下2015-05-05
這篇文章主要介紹了你應(yīng)該知道的這些Mybatis-Plus使用技巧(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
這篇文章主要介紹了Java編程中JDialog窗體的用法及實(shí)例,描述了其特征,具有一定參考價(jià)值,需要的朋友可以了解下。2017-09-09
這篇文章主要給大家介紹了關(guān)于Spring Boot中@ConditionalOnProperty的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
這篇文章主要介紹了Redis緩存,泛型集合與json字符串的相互轉(zhuǎn)換實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
這篇文章主要介紹了解決mybatis返回boolean值時(shí)數(shù)據(jù)庫(kù)返回null的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
這篇文章主要介紹了Mybatis-Plus BaseMapper的用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
最新評(píng)論
總結(jié)
以上是生活随笔為你收集整理的文本文件 java_简单的用java实现读/写文本文件的示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java判断一个对象是否为空_Java中
- 下一篇: 汉字转16进制java_java实现汉字