當前位置:首頁 » 編程語言 » 文件輸出java

文件輸出java

發布時間: 2022-06-21 11:50:39

java以下代碼中,我用文件輸出流和內存輸出流同樣輸出output對象,為什麼結果不一樣

呃,時隔幾年,不知道你解決問題沒有。首先應該明白,System.out.println(OBJ)會自動調用OBJ.toString()方法。查閱官方文檔表示,ByteArrayInputStream類中重寫了toString( )方法,Converts the buffer's contents into a string decoding bytes using the platform's default character set.即 「使用平台的默認字元集將緩沖區的內容轉換為字元串解碼位元組。
但是 FileOutputStream類中並未重寫toString( ) 。使用的是從Object類中繼承下來的。所以你能看到 obj@xxx 格式的輸出。

Ⅱ java如何使用文件位元組輸出流類:FileOutputStream

文件位元組輸出流關聯指定文件路徑的文件,數據通過文件位元組輸出流以位元組為單位輸出並保存到文件中。文件位元組輸出流繼承自OutputStream類,並實現OutputStream類的各種方法。

文件位元組輸出流的構造方法語法如下:

  • 語法1:以File對象為參數創建FileOutputStream實例

  • new FileOutputStream(File file)1

  • 語法2:以文件對象的絕對路徑為參數創建FIleOutputStream實例

  • new FileOutputStream(String filepath)

Ⅲ Java中如何實現文件的輸入輸出

程序如下:
<span style="color:#990000;">

</span>File file1 = new File("/home/a123/a");

if (file1.exists()) {
System.out.println("存在文件夾a");
} else {
file1.mkdir(); // 文件夾的創建 創建文件夾/home/a123/a
}
File file2 = new File("/home/a123/a/test");
if (file2.exists()) {
System.out.println("存在文件夾或者文件test");
} else {
try {
file2.createNewFile(); // 文件的創建,注意與文件夾創建的區別
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 最簡單的文件讀寫方法是使用類FileWriter
* (它的父類依次是java.io.OutputStreamWriter——>java.io.Writer——>java.lang.Object );
*/

// 下面是向文件file2裡面寫數據
try {
FileWriter fileWriter = new FileWriter(file2);
String s = new String("This is a test! \n" + "aaaa");
fileWriter.write(s);
fileWriter.close(); // 關閉數據流

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

/*
* 這樣寫數據的話,是完全更新文件test裡面的內容,即把以前的東西全部刪除,重新輸入。
* 如果不想刪除以前的數據,而是把新增加的內容增添在文件末尾處。只需要在創建FileWriter對象時候,使用另外一個構造函數即可:
* FileWriter fileWriter=new FileWriter(file2,true);
*/

// 下面是從文件file2讀東西
try {
FileReader fileReader = new FileReader(file2);
String s = null;
char ch;
try {
char[] c = new char[100];
fileReader.read(c,0,2); // 具體想得到文件裡面的什麼值(單個char?int?還是String?),
System.out.println(c);
fileReader.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**
* 具體想得到文件裡面的什麼值(單個char?int?還是String?),需要知道不通read的不同用法:
* 1. int read() 讀取單個字元。
* 2. int read(char[] cbuf) 將字元讀入數組。 可以再將字元型數組轉化位字元串
* 3. int read(char[] cbuf,int off,int len) 將字元讀入數組的某一部分。
* 這三個方法都返回一個int值,作用是:讀取的字元數,如果已到達流的末尾,則返回 -1.
*/

}

Ⅳ JAVA里文件的輸出應該怎麼寫

Java 輸入/輸出(I/O)機制提供了一套簡單的,標准化的API以便從不同的數據源讀取和寫入字元和位元組數據。在「面向對象編程:Java collection更有效管理elements」一文中,我們討論了Java 集合類架構中的類和功能並介紹了它的排序功能。在本文中,我們將學習Java 平台提供的這些I/O類,介面和操作。讓我們先從了解Java 數據流開始。 數據流 Java所有的I/O機制都是基於數據流的,這些數據流表示了字元或者位元組數據的流動序列。Java的I/O流提供了讀寫數據的標准方法。任何Java中表示數據源的對象都會提供以數據流的方式讀寫它的數據的方法。 Java.io是大多數面向數據流的輸入/輸出類的主要軟體包。這個軟體包包含了兩個抽象類,InputStream和OutputStream。所有其它面象數據流的輸入/輸出類都要擴展這兩個基類。 java.io軟體包提供了一些類和介面,它們在由InputStream和OuputStream類提供的讀寫操作的頂端定義了一些有用的抽象。例如,ObjectInputStream類提供了讓你把輸入/輸出流中的數據當成對象來讀取的方法,而ObjectOutputStream類提供了讓你能夠把Java對象寫入數據流中的方法。 優化讀寫過程 JDK 1.1 增加了一套讀寫類,它們提供了比現有數據流類更有用的抽象和更好的輸入/輸出性能。例如,BufferedReader和BufferedWriter 類被用來從基於字元的輸入和輸出流中讀取和寫入文本。BufferdReader 類緩存字元以更高效的讀取字元串,數組和文本行。BufferedWriter類緩存字元以更高效的寫入字元串,數組和文本行。BufferedReader和BufferedWriter 類可以按需求進行設置。 Java輸入/輸出架構提供的讀取器和寫入器類包括 LineNumberReader 類,CharArrayReader類,FileReader類,FilterReader類,PushbackReader類,PipedReader類,StringReader類以及其它一些類。這些類是在InputStream和OuputStream類頂部的包裹類因此提供了與InputStream和OuputStream類相似的方法。但是,這些類為讀寫特定的對象,比方文件,字元數組和字元串等等提供了更高效而有用的抽象。 讀取數據 當你從一個相應的數據源對象里提取輸入流或者是創建一個讀取器對象的時候就會自動打開一個輸入流。例如,要為一個文件打開輸入流,我們只需要以下面的方式把文件名傳遞給Java.io.FileReader對象的構造函數: java.io.FileReader fileReader = new java.io.FileReader("/home/me/myfile.txt".net/forum/images/smiles/icon_wink.gif border=0>; 要按順序讀取FileReader底層的輸入流中的一個位元組數據,只需要使用不帶參數的read方法。表A中的代碼段從一個文件讀取文本數據,一次一個字元,然後把它寫入System.out里。 要從輸入流讀取指定數目的位元組數據到char數組里,只需要使用帶一個char[]參數的read方法。數組的長度被用來確定應該讀取的字元的個數。表B演示了這個技術。 要關閉一個輸入流以及這個流使用的所有系統資源,你只需要以下面的方式調用close方法: fileReader.close(); 寫入數據 象一個輸入流一樣,輸出流通常在你從相應的數據源提取它或者是在你創建一個寫入對象的時候被自動的打開。例如,要為一個文件打開輸出流,我們把文件的名字傳遞給java.io.FileWriter對象的構造函數,如下所示: java.io.FileWriter fileWriter = new java.io.FileWriter("/home/me/out.txt".net/forum/images/smiles/icon_wink.gif border=0>; 要將一個特定的字元寫入到輸出流中,可以使用帶一個int參數的write方法,int參數代表要定入的字元。 int aChar = (int)'X'; fileWriter.write(aChar); 要在輸出流給定的偏移地址寫入一個char數組中特定數目的字元,你可以使用帶一個char[]參數,一個int 偏移量參數和一個int長度參數的write方法,如下面的例子所示: fileWriter.write(buffer, 0, byteCount); 要關閉一個輸出流並釋放所有與之相關的系統資源,可以使用close方法,就象這樣: fileWriter.close(); 要強迫寫出一個輸出流中的所有數據,可以使用下面的flush方法: fileWriter.flush(); 把它們全部綜合起來 我們可以使用我們學習過的這些函數從一個文件中讀取數據並同時寫到另一個文件中去,如表C所示。 總結 Java的輸入/輸出機制為從不同的數據源讀取和寫入字元增加了一套簡單而標准化的API。你對一種數據源使用Java流的經驗能夠讓你容易的使用其它由Java提供的數據源類型。 在我們下一篇文章中,我們將會開始學習Java平台的聯網和遠程通訊架構。我們將會把我們對Java流的討論擴展到這些環境並演示如何打開遠程數據源,並象操作本地數據源,比方文件一樣,寫入數據和讀取數據

Ⅳ 如何用java輸出txt文件

輸入無需使用位元組流,直接字元流讀取即可。

privatevoidinput(StringfileName)throwsIOException{
try(BufferedReaderreader=newBufferedReader(newFileReader(fileName))){
Stringline;
while((line=reader.readLine())!=null){
System.out.println(line);
}
}
}

同樣輸出,只要把Input換成Output;

privatevoidoutput(StringfileName,Stringcontent)throwsIOException{
try(BufferedWriterwriter=newBufferedWriter(newFileWriter(fileName))){
writer.write(content);
writer.flush();
}
}

Ⅵ Java中如何實現文件的輸入和輸出

程序如下:
<span style="color:#990000;">

</span>File file1 = new File("/home/a123/a");

if (file1.exists()) {
System.out.println("存在文件夾a");
} else {
file1.mkdir(); // 文件夾的創建 創建文件夾/home/a123/a
}
File file2 = new File("/home/a123/a/test");
if (file2.exists()) {
System.out.println("存在文件夾或者文件test");
} else {
try {
file2.createNewFile(); // 文件的創建,注意與文件夾創建的區別
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 最簡單的文件讀寫方法是使用類FileWriter
* (它的父類依次是java.io.OutputStreamWriter——>java.io.Writer——>java.lang.Object );
*/

// 下面是向文件file2裡面寫數據
try {
FileWriter fileWriter = new FileWriter(file2);
String s = new String("This is a test! \n" + "aaaa");
fileWriter.write(s);
fileWriter.close(); // 關閉數據流

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

/*
* 這樣寫數據的話,是完全更新文件test裡面的內容,即把以前的東西全部刪除,重新輸入。
* 如果不想刪除以前的數據,而是把新增加的內容增添在文件末尾處。只需要在創建FileWriter對象時候,使用另外一個構造函數即可:
* FileWriter fileWriter=new FileWriter(file2,true);
*/

// 下面是從文件file2讀東西
try {
FileReader fileReader = new FileReader(file2);
String s = null;
char ch;
try {
char[] c = new char[100];
fileReader.read(c,0,2); // 具體想得到文件裡面的什麼值(單個char?int?還是String?),
System.out.println(c);
fileReader.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**
* 具體想得到文件裡面的什麼值(單個char?int?還是String?),需要知道不通read的不同用法:
* 1. int read() 讀取單個字元。
* 2. int read(char[] cbuf) 將字元讀入數組。 可以再將字元型數組轉化位字元串
* 3. int read(char[] cbuf,int off,int len) 將字元讀入數組的某一部分。
* 這三個方法都返回一個int值,作用是:讀取的字元數,如果已到達流的末尾,則返回 -1.
*/

}

Ⅶ java實現文件的輸入輸出的重要性是什麼

輸入和輸出功能是Java對程序處理數據能力的提高,Java以流的形式處理數據。流是一組有序的數據序列,根據操作的類型,分為輸入流和輸出流。

程序從輸入流讀取數據,向輸出流寫入數據。Java是面向對象的程序語言,每一個數據流都是一個對象,它們提供了各種支持「讀入」與「寫入」操作的流類。

Ⅷ java怎麼輸出

java控制台輸出由print( ) 和 println( )來完成最為簡單。這兩種方法由rintStream(System.out引用的對象類型)定義。盡管System.out是一個位元組流,用它作為簡單程序的輸出是可行的。因為PrintStream是從OutputStream派生的輸出流,它同樣實現低級方法write(),write()可用來向控制台寫數據。PrintStream 定義的write( )的最簡單的形式如下:

void write(int byteval)

該方法按照byteval指定的數目向文件寫位元組。盡管byteval 定義成整數,但只有低位的8個位元組被寫入。下面的短例用 write()向屏幕輸出字元「A」,然後是新的行。

// Demonstrate System.out.write().

class WriteDemo {

public static void main(String args[]) {

int b;

b = 'A';

System.out.write(b);

System.out.write(' ');

}

}

一般不常用write()來完成向控制台的輸出(盡管這樣做在某些場合非常有用),因為print()和println() 更容易用。

四、PrintWriter類

盡管Java允許用System.out向控制台寫數據,但建議僅用在調試程序時或在常式中。對於實際的程序,Java推薦的向控制台寫數據的方法是用PrintWriter流。PrintWriter是基於字元的類。用基於字元類向控制台寫數據使程序更為國際化。PrintWriter定義了多個構造函數,這里所用到的一個如下:

PrintWriter(OutputStream outputStream, boolean flushOnNewline)

outputStream是OutputStream類的對象,flushOnNewline控制Java是否在println()方法被調用時刷新輸出流。如果flushOnNewline為true,刷新自動發生,若為false,則不發生。

PrintWriter支持所有類型(包括Object)的print( )和println( )方法,這樣,就可以像用ystem.out那樣用這些方法。如果遇到不同類型的情況,PrintWriter方法調用對象的toString()方法並列印結果。用PrintWriter向外設寫數據,指定輸出流為System.out並在每一新行後刷新流。例如這行代碼創建了與控制台輸出相連的PrintWriter類。

PrintWriter pw = new PrintWriter(System.out, true);

下面的應用程序說明了用PrintWriter處理控制台輸出的方法:

// Demonstrate PrintWriter

import java.io.*;

public class PrintWriterDemo {

public static void main(String args[]) {

PrintWriter pw = new PrintWriter(System.out, true);

pw.println("This is a string");

int i = -7;

pw.println(i);

double d = 4.5e-7;

pw.println(d);

}

}

該程序的輸出如下:

This is a string

-7

4.5E-7

Ⅸ java實現文件的輸入輸出的主要使用的類是什麼

ava的輸入輸出功能來自java.io 包中的InputStream類、OutputStream類、Reader類和Writer類以及繼承它們的各種子類。

Ⅹ java怎麼讀入文件,並逐行輸出

java讀入文件,並逐行輸出,先在D://home建立個文件夾,然後創建一個a.txt文件,然後編輯文件,文本編輯的編碼是utf-8,然後用流逐行讀取輸出,如下:

importjava.io.BufferedInputStream;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStream;
importjava.io.InputStreamReader;

publicclassTestC{

publicstaticvoidmain(String[]args){
//獲取要讀取的文件
FilereadFile=newFile("D://home/a.txt");
//輸入IO流聲明
InputStreamin=null;
InputStreamReaderir=null;
BufferedReaderbr=null;

try{
//用流讀取文件
in=newBufferedInputStream(newFileInputStream(readFile));
//如果你文件已utf-8編碼的就按這個編碼來讀取,不然又中文會讀取到亂碼
ir=newInputStreamReader(in,"utf-8");
//字元輸入流中讀取文本,這樣可以一行一行讀取
br= newBufferedReader(ir);
Stringline="";

//一行一行讀取
while((line=br.readLine())!=null){
System.out.println(line);

}

}catch(Exceptione){

e.printStackTrace();
}finally{
//一定要關閉流,倒序關閉
try{

if(br!=null){
br.close();
}
if(ir!=null){
ir.close();
}
if(in!=null){
in.close();
}
}catch(Exceptione2){

}

}

}


}

結果:
helloworld
您好
123456
熱點內容
製作自解壓安裝 發布:2025-03-20 05:41:49 瀏覽:302
華為連接電視密碼是多少 發布:2025-03-20 05:31:11 瀏覽:492
演算法第五版 發布:2025-03-20 05:17:57 瀏覽:730
湖南台訪問 發布:2025-03-20 05:10:32 瀏覽:38
腳本和秒搶 發布:2025-03-20 05:06:29 瀏覽:591
b35鎖如何設置密碼 發布:2025-03-20 05:06:27 瀏覽:905
淘寶如何租雲伺服器 發布:2025-03-20 05:05:12 瀏覽:213
編程忌諱 發布:2025-03-20 04:58:35 瀏覽:427
國家知識產權專利資料庫 發布:2025-03-20 04:54:29 瀏覽:416
win7怎麼給文件夾設密碼 發布:2025-03-20 04:52:38 瀏覽:725