JAVA輸入輸出總結,java輸入輸出

來源:互聯網
上載者:User

JAVA輸入輸出總結,java輸入輸出

標準輸入:

Scanner cin = new Scanner(System.in);  cin.nextLine();:輸入一行,可能存在空格,功能特點類似於C中的gets(); cin.next();:輸入一個單詞,以空白字元為結束標誌,類似於scanf(“%s”,str); cin.nextInt();:輸入整形資料 cin.nextDouble();輸入浮點性資料

 

以上4種輸入方式這些輸入都是可見的,不適用於控制台讀取密碼

控制台密碼的讀取,應用Console類:一次讀入一行

為了安全起見,返回的密碼存放在一維數組中,對密碼進行了處理,用一個填充值覆蓋 數組元素

代碼:

import java.io.Console;public class Main {public static void main(String[] args){Console cin = System.console();String name = cin.readLine("Username:");char[] Password = cin.readPassword("Password:");String Pass = "";//初學還不知道這裡有沒有什麼好的辦法for(int i = 0;i<Password.length;i++){Pass = Pass + Password[i]; }if(Pass.equals("123456") && name.equals("xxx")){System.out.println("密碼正確");}else {System.out.println("密碼錯誤");}}}

標準輸出:

就比較簡單了

System.out.println(“hello”);//加上ln會自動換行,不加則不換
System.out.println(“heado”+”,”+”world”+2014);//列印hello,world2014,為了字串串連,重載了+運算子

於此同時 JAVA  SE5.0還沿用了C中的printf();方法,用法和C基本一樣

double x = 0.56;System.out.printf("%.2f",x);//只是沒有了&符

System.out.println();是最常用的


檔案的輸入和輸出:

1.要想對檔案進行讀取,就要用File物件建構一個Scanner對象,如:

Scanner cin = new Scanner(Paths.get("myfile.txt"));

如果檔案名稱中有反斜線,就要在每個反斜線的前面再加一個反斜線:

“C:\\MyFile\\myfile.txt”

2.要想寫入,就要構造PrintWriter對象,只需要提供檔案名稱

PrintWriter out = new PrintWriter("myfile.txt");

如果檔案不存在,則建立檔案,可以輸出到System.out一樣使用print、println、printlf等命令

 

注意:


可以構造一個帶子父串參數的Scanner,但這個Scanner將字串解釋為資料,而不是檔案名稱

Scanner in = new Scanner(“myfile.txt”);

這個Scanner會將參數作為包含10個字元的資料:’m’、‘y’、’f’等


PS:

當指定一個相對檔案名稱時,例:myfile.txt 或 .../myfile.txt

檔案位於Java虛擬機器啟動路徑的相對位置

 

1.如果在命令列方式下,用下列命令啟動程式

   java.MyProg //啟動路徑就是命令直譯器的當前路徑

2.如果使用整合式開發環境,那麼啟動路徑由IDE控制,可以使用下面的調用方式來找到路徑的位置:

String dir = System.getProperty(“user.dir”);

如果覺得定位檔案比較麻煩,可以考慮用絕對路徑,如“C:\\madirectory\\myfile.txt”或者/home/me/directory/myfile.txt


警告:

    如果用一個不存在的檔案構造一個Scanner或用一個不能被建立的檔案名稱構造一個PrintWriter那麼就會出現異常,這些異常,在Java被認為比“整除零”更嚴重,所以,需要在main方法中用throws標記

public static void main(String[] args)throws FileNotFoundException{PrintWriter out = new PrintWriter("myfile.txt");}

PS:當採用命令列方式啟動一個人程式,可以用重新導向將檔案捆綁到System.in和System.out

Java MyProg <myfile.txt> output.txt

這樣就不必擔心處理FileNotFoundException異常了


java.util.Scanner 5.0

Scanner(File f)

構造一個從給定檔案讀取資料的Scanner

Scanner(String data)

構造一個從給定字串讀取資料的Scanner

import java.io.PrintWriter 1.1

PrinteWriter(String FileName)

構造一個將資料寫入檔案的PrintWriter,檔案名稱由參數指定

Java.nio.file.Paths 7

Static Path get(String Pathname)

根據給定的路徑構造一個Path







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");

要按順序讀取FileReader底層的輸入資料流中的一個位元組資料,只需要使用不帶參數的read方法。表A中的程式碼片段從一個檔案讀取文本資料,一次一個字元,然後把它寫入System.out裡。

要從輸入資料流讀取指定數目的位元組資料到char數組裡,只需要使用帶一個char[]參數的read方法。數組的長度被用來確定應該讀取的字元的個數。表B示範了這個技術。

要關閉一個輸入資料流以及這個流使用的所有系統資源,你只需要以下面的......餘下全文>>
 
java中的輸入輸出

int a,b,c;
Scanner s=new Scanner(System.in());
a=s.nextInt();
b=s.nextInt();
c=a+b;
System.out.println(a+" + "+b+" = "+c);
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.