java寫入文件到指定文件夾的方法主要有兩種:利用PrintStream和利用StringBuffer
例如將文本「I'm the text to be write」寫入到文件夾D:/test下,並命名為test.txt,則兩種方式簡單實現代碼如下:
1. 利用PrintStream寫文件
publicvoidPrintStreamDemo(){
try{
FileOutputStreamout=newFileOutputStream("D:/test.txt");
PrintStreamp=newPrintStream(out);
p.println("I'mthetexttobewrite");
}catch(FileNotFoundExceptione){
e.printStackTrace();
}
}
2. 利用StringBuffer寫文件
publicvoidStringBufferDemo()throwsIOException{
Filefile=newFile("D:/test.txt");
if(!file.exists())
file.createNewFile();
FileOutputStreamout=newFileOutputStream(file,true);
StringBuffersb=newStringBuffer();
sb.append("I'mthetexttobewrite");
out.write(sb.toString().getBytes("utf-8"));
}
out.close();
}
提示:利用StringBuffer寫文件可以設定使用何種編碼,有效解決中文問題。
② java文件輸出流,寫到.txt文件,如何實現換行
1 實現的方式總共有3中, 1)原始的 \r\n 方式
2)BufferedWriter的newline()方法
3) System.getProperty()方法
下面使用代碼逐一展示 , 寫到.txt文件實現換行
2 使用java中的轉義符"\r\n":
FileOutputStream fos=new FileOutputStream("c;\\11.txt");
String str="aaa";
str+="\r\n";
fos.write(str);
3 BufferedWriter的newline()方法:
FileOutputStream fos=new FileOutputStream("c;\\11.txt");
BufferedWriter bw=new BufferedWriter(fos);
bw.write("你好");
bw.newline(); //實現換行
4 System.getProperty()方法:
FileOutputStream fos=new FileOutputStream("c;\\11.txt");
String str = "aaa"+System.getProperty("line.separator");
fos.write(str);
③ java中輸出txt文件
不清楚樓主具體是哪裡不懂,先給個大概思路,後台也就是action或servlet中利用java.io包把文本讀出來,然後setAttribute()到頁面上去,頁面上textarea取set進去的值就ok了
寫文件大同小異,流程相反
附上io的一個例子
final int BUFFER_LENGTH=1024;
public void formatFlie(String fileName) {
char[] c=new char[BUFFER_LENGTH];//buffered area
String inStr="";//read String
try {
BufferedReader readBuff=new BufferedReader(new FileReader(fileName));
while(readBuff.read(c,0,BUFFER_LENGTH)!=-1) {
//System.out.println("pos:"+read_pos);
for(int i=0;i<BUFFER_LENGTH;i++)
inStr+=c[i];
}
System.out.println(inStr);
readBuff.close();
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
④ java中讀入和輸出文本文件
/**
*測試3:從文本文件中讀取數據
*/
staticvoidtestExample03(){
//1、在內存中打開要讀取文件的字元流對象
try{
Readerreader=newFileReader("e:/ReadMe.log");
//2、從字元流中讀取數據
//一次讀取一個字元(麻煩)
/*intnum=reader.read();
System.out.println((char)num);
num=reader.read();
System.out.println((char)num);*/
//一次讀取一個數組(必須確定數組的長度)
/*char[]cbuf=newchar[10];
reader.read(cbuf);
System.out.println(newString(cbuf));*/
//循環讀取,一次就讀一個
intch=reader.read();
StringBufferbuffer=newStringBuffer();
while(ch!=-1){//讀取成功
buffer.append((char)ch);
ch=reader.read();
}
System.out.println(buffer.toString());
//3、關閉流
reader.close();
}catch(FileNotFoundExceptione){
System.out.println("要讀取的文件不存在:"+e.getMessage());
}catch(IOExceptione){
System.out.println("文件讀取錯誤:"+e.getMessage());
}
}
/**
*測試4:向文本文件中寫入數據
*/
staticvoidtestExample04(){
System.out.println("請輸入內容:");
Stringtext=input.next();
try{
//1、打開流
Writerw=newFileWriter("e:/測試.txt",true);
//2、寫入內容
w.write(text);
//3、關閉流
w.close();
}catch(IOExceptione){
System.out.println("文件寫入錯誤:"+e.getMessage());
}
}
/**
*測試5:使用效率高的字元流讀寫數據
*/
staticvoidtestExample05(){
try{
//1、創建流對象
Readerreader=newFileReader("e:/ReadMe.log");
//構建高效流對象
BufferedReaderbuffReader=newBufferedReader(reader);
//2、讀取一行字元串
Stringline=buffReader.readLine();
StringBufferbuffer=newStringBuffer();
while(line!=null){
buffer.append(line+" ");
line=buffReader.readLine();
}
System.out.println(buffer.toString());;
//3、關閉流
buffReader.close();
reader.close();
Writerw=newFileWriter("e:/NewReadMe.txt");
BufferedWriterbuffWriter=newBufferedWriter(w);
buffWriter.write(buffer.toString());
buffWriter.close();
w.close();
System.out.println("寫入成功!");
}catch(FileNotFoundExceptione){
System.out.println("要讀取的文件不存在:"+e.getMessage());
}catch(IOExceptione){
System.out.println("文件讀取錯誤:"+e.getMessage());
}
}
⑤ 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
⑥ 使用java的輸入,輸出流將一個文本文件的內容按行讀出,每讀一行就順序添加行號,並寫入到另一個文件
代碼如下:
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;
publicclassApp{
publicstaticvoidmain(String[]args)throwsFileNotFoundException,IOException{
try(
FileInputStreaminputStream=newFileInputStream(newFile("d:\temp\abc.txt"));
InputStreamReaderstreamReader=newInputStreamReader(inputStream);
BufferedReaderreader=newBufferedReader(streamReader);
FileOutputStreamoutputStream=newFileOutputStream(newFile("d:\temp\output.txt"));
=newOutputStreamWriter(outputStream);
BufferedWriterwriter=newBufferedWriter(streamWriter);
){
intcount=1;
Stringline=null;
while((line=reader.readLine())!=null){
writer.write(count+++":"+line);
writer.newLine();
}
}
System.out.println("done.");
}
}
⑦ java輸出到TXT文件時怎麼加換行
java輸出到txt的時候增加換行符的方法如下:
package com.anjoyo.test;
import java.io.FileWriter;
import java.io.IOException;
public class TestFileWriter {
public static void main(String[] args) throws IOException{
//\r\n為換行符
FileWriter fw = new FileWriter("D:\\1.txt");
//寫入第一行換行
fw.write("第一行\r\n");
//或者獲得系統換行符
String str = "第二行" + System.getProperty("line.separator");
fw.write(str);
fw.write("第三行");
fw.close();
/*
* windows下的文本文件換行符:\r\n linux/unix下的文本文件換行符:\r
* Mac下的文本文件換行符:\n
*/
}
}
⑧ JAVA 的輸入輸出,讀取寫入文件
//將內容追加到文件尾部
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* 將內容追加到文件尾部
*/
public class AppendToFile {
/**
* A方法追加文件:使用File
* @param fileName 文件名
* @param content 追加的內容
*/
public static void appendMethodA(String fileName, String content){
try {
// 打開一個隨機訪問文件流,按讀寫方式
RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
// 文件長度,位元組數
long fileLength = randomFile.length();
//將寫文件指針移到文件尾。
randomFile.seek(fileLength);
randomFile.writeBytes(content);
randomFile.close();
} catch (IOException e){
e.printStackTrace();
}
}
/**
* B方法追加文件:使用FileWriter
* @param fileName
* @param content
*/
public static void appendMethodB(String fileName, String content){
try {
//打開一個寫文件器,構造函數中的第二個參數true表示以追加形式寫文件
FileWriter writer = new FileWriter(fileName, true);
writer.write(content);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String fileName = "C:/temp/newTemp.txt";
String content = "new append!";
//按方法A追加文件
AppendToFile.appendMethodA(fileName, content);
AppendToFile.appendMethodA(fileName, "append end. ");
//顯示文件內容
ReadFromFile.readFileByLines(fileName);
//按方法B追加文件
AppendToFile.appendMethodB(fileName, content);
AppendToFile.appendMethodB(fileName, "append end. ");
//顯示文件內容
ReadFromFile.readFileByLines(fileName);
}
}
本篇文章來源於:開發學院 http://e.codepub.com 原文鏈接:http://e.codepub.com/2010/0323/21269_2.php