1. 程式人生 > >16Java語法回顧之System.in標準的輸入輸出流

16Java語法回顧之System.in標準的輸入輸出流

Java語法回顧之System.in標準的輸入輸出流

讀了那麼多年的書讓我明白一個道理。人要穩重,不要想到啥就做啥。做一行越久即使你不會,幾年之後慢慢的你也會了,加上一點努力你或許你能成為別人眼中的專家。

System.in&out繼承關係

/*
 * 標準的輸入輸出流:
 * System.in    --  InputStream
 *      System類:
 *          public static final InputStream in
 *          
 *          InputStream is = System.in;
 * 
 * System.out   --  PrintStream --  OutputStream
 *      System類:
 *          public
static final PrintStream out * * PrintStream ps = System.out; * OutputStream os = System.out; */

System.in&out繼承關係程式碼實現

public class SystemInDemo {
    public static void main(String[] args) {
        InputStream is = System.in; // [email protected]
        System.out
.println(is); OutputStream os = System.out;// //[email protected] System.out.println(os); } }

用System.in實現鍵盤錄入到文字

public class MySystemIn {

    /**
     * 資料來源:System
     * 
     * 目的地:BufferedWriter
     * 
     */
    public static void main(String[] args) throws IOException{
        //資料來源
InputStream in = System.in; //因為BufferedWriter不能直接接受InputStream作為引數型別,所以需要轉換字元流 InputStreamReader isr = new InputStreamReader(in); BufferedReader br = new BufferedReader(isr); //目的地 BufferedWriter bw = new BufferedWriter(new FileWriter("a.txt")); //讀取並寫入資料 String line = null; while ((line = br.readLine())!=null) { //錄入文字的結束標記 if ("exit".equals(line)) { break; } bw.write(line); bw.newLine(); bw.flush(); } //關閉流 bw.close(); br.close(); } }

PrintStream&PrintWriter列印流

/*
 * PrintStream:位元組列印流
 * PrintWriter:字元列印流
 * 
 * 列印流特點:
 *      A:可以寫入任意型別的資料。
 *      B:可以自動重新整理。必須先啟動,並且是使用println,printf及format方法才有效。
 *      C:可以直接對檔案進行寫入。
 *          哪些流物件是可以直接對檔案進行操作的?
 *          看構造方法,是否有同時接受FileString型別的引數構造。
 * 
 *      注意:列印流只有寫資料的,沒有讀取資料的。
 * 
 * 構造方法:
 *      PrintWriter(String fileName) 
 */

PrintSWriter字元列印流程式碼測試

public class PrintWriterDemo {
    public static void main(String[] args) throws IOException {
        // 建立物件
        PrintWriter pw = new PrintWriter("a.txt");

        //寫資料,可以寫任意型別
        pw.write("hello");
//      pw.write(123.123);
        pw.flush();

        pw.close();
    }
}

PrintWriter實現自動重新整理自動換行println程式碼測試

public class MySystemIn {

    /*
     * PrintWriter
     *      自動重新整理。並且能夠自動換行。
     */
    public static void main(String[] args) throws IOException{
        PrintWriter printWriter = new PrintWriter(new FileOutputStream(new File("pw.txt")), true);

        printWriter.println(true);
        printWriter.println("fafadsfdasf");
        printWriter.println(1256);
        printWriter.close();
    }

} 

序列號流

/*
 * 序列化:把物件按照流一樣的方式傳輸或者儲存。
 * 反序列化:把網路中的流資料或者檔案中的流資料還原成物件。
 * 
 * 把物件儲存到文字檔案。
 * ObjectInputStream:ObjectInputStream 對以前使用 ObjectOutputStream 寫入的基本資料和物件進行反序列化
 *      Object readObject()
 * ObjectOutputStream:ObjectOutputStreamJava 物件的基本資料型別和圖形寫入 OutputStream。
 *      void writeObject(Object obj)
 */

序列號流程式碼測試

    /*
     * 序列化:把物件按照流一樣的方式傳輸或者儲存。
     */

public class MyTest {

    /*
     * 序列化:把物件按照流一樣的方式傳輸或者儲存。
     */
    public static void main(String[] args) throws IOException{
        //資料來源
        ObjectOutputStream ooStream = new ObjectOutputStream(new FileOutputStream("oo.txt"));
        //初始化物件
        Person person = new Person("Hasi",23);
        //序列號物件到文字檔案中
        ooStream.writeObject(person);
        ooStream.close();
    }

}

————————————————————————————————————————————————————————
public class MyTest {

    /*
     * 反序列化:把網路中的流資料或者檔案中的流資料還原成物件。
     */
    public static void main(String[] args) throws IOException, ClassNotFoundException{
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("oo.txt"));
        Person readObject = (Person) ois.readObject();
        ois.close();
        System.out.println(readObject);
    }

}

Properties集合和IO流

/*
 * Properties:是一個表示屬性集的集合。可以從流中載入資料或者把資料儲存到流中。鍵和值都是字串。
 *                是唯一一個可以和IO流結合使用的集合類。
 * 
 * Properties的父親是Hashtable,所以,我們知道它是一個Map體現的。那麼,我們就儲存資料並遍歷。
 */

Properties修改方法

/*
 * Properties作為集合的特殊功能:
 * 1:修改功能       
 *      public Object setProperty(String key,String value)
 * 2:獲取功能
 *      public String getProperty(String key)
 *      public String getProperty(String key,String defaultValue)
 *      public Set<String> stringPropertyNames()
 */

Properties修改方法程式碼測試

public class PropertiesDemo2 {
    public static void main(String[] args) {
        // 建立集合物件
        Properties prop = new Properties();

        // 新增元素
        // System.out.println(prop.setProperty("劉備", "雙股劍"));
        // System.out.println(prop.setProperty("關羽", "青龍偃月刀"));
        // System.out.println(prop.setProperty("張飛", "丈八蛇矛"));
        // System.out.println(prop.setProperty("劉備", "哭泣"));
        prop.setProperty("劉備", "雙股劍");
        prop.setProperty("關羽", "青龍偃月刀");
        prop.setProperty("張飛", "丈八蛇矛");

        // 根據鍵獲取值
        // System.out.println(prop.getProperty("劉備"));
        // System.out.println(prop.getProperty("關羽"));
        // System.out.println(prop.getProperty("張飛"));
        // System.out.println(prop.getProperty("趙雲"));

        // public String getProperty(String key,String defaultValue)
        // System.out.println(prop.getProperty("劉備", "黃忠"));
        // System.out.println(prop.getProperty("趙雲", "黃忠"));

        // public Set<String> stringPropertyNames()
        Set<String> set = prop.stringPropertyNames();
        for (String key : set) {
            String value = prop.getProperty(key);
            System.out.println(key + "---" + value);
        }
    }
}

集合和IO的結合是什麼意思

/*
 * System:
 *      public static Properties getProperties():系統屬性
 * 
 * 集合和IO的結合是什麼意思?
 *      難道是指可以把集合中的資料儲存到IO流中(檔案中。)
 *      不是,如果是的話,那麼,任意的集合資料我們都可以儲存到文字檔案中。
 *      那麼,到底什麼是集合和IO流的結合呢?
 */

集合和IO的結合程式碼測試

public class PropertiesDemo3 {
    public static void main(String[] args) {
        Properties prop = System.getProperties();
        // System.out.println(prop.size());

        // 遍歷
        Set<String> set = prop.stringPropertyNames();
        for (String key : set) {
            String value = prop.getProperty(key);
            System.out.println(key + "***" + value);
        }
    }
}

打印出當前的系統資訊

Properties和IO結合使用

/*
 * 結合的方式就是,引數傳遞IO流物件。
 * 怎麼使用呢?
 * public void list(PrintStream out)
 * public void list(PrintWriter out)
 * 把集合中的資料按照鍵值對的形式儲存到文字檔案中。
 */

Properties和IO結合使用的程式碼測試

public class MySystemIn {

    /*
     * 需求:把獲取到的系統資訊寫入到文字檔案中
     */
    public static void main(String[] args) throws IOException, ClassNotFoundException{
        Properties properties = System.getProperties();
//      properties.list(new PrintStream(new File("properties.txt")));
        PrintStream printStream = new PrintStream(new File("properties.txt"));
        properties.list(printStream);
        printStream.close();
    }
}

相關推薦

16Java語法回顧System.in標準輸入輸出

Java語法回顧之System.in標準的輸入輸出流 讀了那麼多年的書讓我明白一個道理。人要穩重,不要想到啥就做啥。做一行越久即使你不會,幾年之後慢慢的你也會了,加上一點努力你或許你能成為別人眼中

3.6 Java轉換標準輸入輸出

轉換流 轉換流(屬於處理流)作用在節點流之上 轉換流共兩種:輸入型和輸出型 輸入型轉換流:將輸入型位元組流轉換為輸入型字元流,使得以字元形式讀入,提高效率,輸出型同理 解碼:由位元組陣

Java標準輸入輸出以及標準錯誤輸出的基本使用

標準輸入輸出流以及標準錯誤輸出流的基本使用: System.out  是一個特殊的 PrintStream "標準"輸出流  ==》 輸出結果到控制檯System.err  是一個特殊的 Print

標準輸入輸出對象

com 包括 後繼 print 一個 定向 輸出流 ner 轉換 System類的靜態成員變量,包括 System.in:InputStream類型的,代表標準輸入流,默認狀態對應於鍵盤輸入。 System.out:PrintStream類型的,代表標註輸出流,默認狀態對應

Java 知識點整理-17.IO 其他 序列+序列化+反序列化+記憶體輸出+物件操作+列印+標準輸入輸出+鍵盤錄入方式+隨機訪問+資料輸入輸出+Properties

目錄 序列流 記憶體輸出流 記憶體輸出流的面試題 物件操作流ObjectOutputStream 物件操作流ObjectInputStream 物件操作流優化 序列化加上id號 列印流的概述和特點 標準輸入輸出流概述和輸出語句 修改標準輸入輸出流拷貝圖片

_118_Java_標準輸入輸出

---------------------------------- import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i

javaSE (三十三)其他(序列、記憶體輸出、隨機訪問、物件操作、資料輸入輸出、列印標準輸入輸出、properties)

1、序列流(SequenceInputStream ): 序列流主要的作用就是整合位元組輸入流,將很多的進口整合成一個 這裡著重講一下多於兩個輸入流的整合: 步驟: 建立三個輸入流 建立vector集合存入這些輸入流 將這些輸入流變成列舉型別 Vector.e

java中標準輸入輸出

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.i

vector,string,標準輸入輸出,檔案輸入輸出01(C++)

按要求編寫程式。 a) 定義一個結構體型別 Student,如下所示: struct Student { int ID; //學號 string name; //姓名 float score[3]; //三門課程成績 }; b) 編寫一個函式,按照上述結構體定義,依次從鍵盤輸

標準輸入輸出,string 亦可使用01(C++)

從鍵盤輸入一個不包括空格的僅由英文字母組成的字串,長度不超過 200 個字元。統計 26 個英文字母的使用頻率(出現的 次數),不區分大小寫。最後按使用頻率從大到小的順序輸出字母(小寫字母)及其使用頻率,沒有出現的字母不輸出   /*==================

緩衝,轉換標準輸入輸出

宣告:由於學習所用環境為JDK1.8,所有java程式碼均在JDK1.8環境中測試通過,如果環境發生變化,可能會有錯誤發生!一.緩衝流緩衝流是處理流的一種,建立在相應的節點流之上,對讀寫的資料提供了緩衝的功能,提高了讀寫的效率,還增加了一些新的方法JDK提供四種緩衝流Buff

標準輸入輸出OutputStreamWriter:將位元組輸出流轉換為字元輸出InputStreamReader:將位元組輸入流轉換為字元輸入列印新增輸出資料的功能ObjectInputStrea

1.1 標準輸入輸出流 public static final InputStream in:標準輸入流 public static final PrintStream out:標準輸出流 OutputStreamWriter:將位元組輸出流轉換為字元輸出流 publicc

20180119:緩衝、轉換標準輸入輸出

今天重點學習瞭解了緩衝流和轉換流的內容,標準輸入輸出流並不複雜,較為容易理解 一、緩衝流 緩衝流是處理流的一種,建立在相應的節點流之上,對讀寫的資料提供了緩衝的功能,作用就是為了提高讀寫的效率,由於普通的輸入流在讀取檔案時效率較低,建立自定義的緩衝區也造成了記憶體的浪費;同

Qt讀寫標準輸入/輸出

答案:QFile和QTextSream QTextStream我沒嘗試過,可跳轉: https://blog.csdn.net/haha_mingg/article/details/6884883 QFile可行,具體例項,可見https://blog.csdn.net

Java中標準輸入輸出的重定向

一、問題的引入: 一般情況下,System.in代表的是鍵盤、System.out是代表的控制檯(顯示器)。當程式通過System.in來獲取輸入的時候,預設情況下,是從鍵盤讀取輸入;當程式試圖通過System.out執行輸出時,程式總是輸出到顯示器。如果我們想對這樣的情況

python 標準輸入輸出

python 中有三種標準輸入輸出流:sys.stdin、sys.stdout、sys.error >>> f = open("1.txt", "r") # fileno方法可返

IOSystem.in、SequenceInputStream合並、內存輸入輸出、數據

string類型 釋放 rgs int() 當前 控制臺輸出 exc extend 清空 1、System.in System.out 是常用的在控制臺輸出數據的 System.in 可以從控制臺輸入數據 InputStream is = System.

Java筆記-I/O系統標準輸入輸出

Java的標準輸入和輸出介紹 Java遵循標準I/O的模型,提供了Syetem.in,System.out,以及System.err。 System.out 是一個已經預先處理過的,被包裝成PrintStream的物件。 System.err 和 Syst

linux重定向標準輸入輸出,標準錯誤

lin linux重定向 文件描述符 name txt 文件 sets color 描述符 標準輸入是文件描述符0。它是命令的輸入,缺省是鍵盤,也可以是文件或其他命令的輸出。標準輸出是文件描述符1。它是命令的輸出,缺省是屏幕,也可以是文件。標準錯誤是文件描述符2。這是命令錯

linux標準輸入輸出

超過 理論 -- happy cal ant 參數 結構體類型 ads 一 簡介 sdtin, stdout, stderr分別稱為標準輸入,標準輸出,標準錯誤輸出, 它們的聲明如下: /* Standard streams. */extern FILE *stdin