java中seterr的簡單介紹

本文目錄一覽:

JAVA中如何把system.out.println里的內容寫入文件

可以用JAVA里的System.in的重定向來解決.

setIn(InputStream in)重新分配「標準」輸入流。

setOut(PrintStream out)重新分配「標準」輸出流

setErr(PrintStream err)重新分配「標準」錯誤輸出流。

看下面的例子:

import java.io.*;

class Redirecter

{

public static void redirect(InputStream in,PrintStream out,PrintStream err)

{

System.setIn(in);

System.setOut(out);

System.setErr(err);

}

public static void copy()throws IOException

{

InputStreamReader reader = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(reader);

String data = br.readLine();

while(data!=null data.length()!=0)

{

System.out.println(data);

System.err.println(data);

data = br.readLine();

}

}

public static void main(String [] args)throws IOException

{

//你先在C:建個111.txt的文件哦自己測試下

InputStream in = new BufferedInputStream( new FileInputStream(“C:\\111.txt”));

PrintStream out = new PrintStream

( new BufferedOutputStream(new FileOutputStream(“C:\\out.txt”)));

PrintStream err = new PrintStream

( new BufferedOutputStream(new FileOutputStream(“C:\\err.txt”)));

redirect(in,out,err); //由111.txt輸入,輸出到out.txt中

copy();

in.close();

out.close();

err.close();

}

}

Java中System.err怎麼理解

err是運行期異常和錯誤反饋的輸出流的方向。 System.err.println只能在屏幕上實現列印,即使你重定向了也一樣。 你使用err列印出的 字元串,在eclipse的console會顯示成紅色的哦。

java問題,動態修改java類裡面的一個方法

//創建文件輸出流

PrintStream ps=new PrintStream(“./log.txt”);

//設置新的輸出流 System.setErr(ps);

System類的out、err、in成員變數都是final類型的,不能直接複製,要通過setOut()、setErr(),setIn()方法來改變流。上例是通過setOut()方法改變輸入流輸入位置,將輸出重定向到一個固定的目錄,實現程序日誌

e.printstacktrace 默認用的就是System的輸出

java System 類里out和err怎麼賦值的?沒找到源碼 initializeSystemClass也沒有找到….求大神講解一下

這是 initializeSystemClass 源碼,就在 System 類中,在System類的源碼中搜索一下 initializeSystemClass 就可以找到了。

    private static void initializeSystemClass() {

        props = new Properties();

        initProperties(props);  // initialized by the VM

        

        sun.misc.VM.saveAndRemoveProperties(props);

        lineSeparator = props.getProperty(“line.separator”);

        sun.misc.Version.init();

        FileInputStream fdIn = new FileInputStream(FileDescriptor.in);

        FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);

        FileOutputStream fdErr = new FileOutputStream(FileDescriptor.err);

        setIn0(new BufferedInputStream(fdIn));

        setOut0(newPrintStream(fdOut, props.getProperty(“sun.stdout.encoding”)));

        setErr0(newPrintStream(fdErr, props.getProperty(“sun.stderr.encoding”)));

        

        loadLibrary(“zip”);

        // Setup Java signal handlers for HUP, TERM, and INT (where available).

        Terminator.setup();

        

        sun.misc.VM.initializeOSEnvironment();

        

        Thread current = Thread.currentThread();

        current.getThreadGroup().add(current);

        // register shared secrets

        setJavaLangAccess();

       

        sun.misc.VM.booted();

    }

其中這幾句代碼就是用來初始化,標準輸入流,標準輸出流,標準錯誤輸出流的。

FileInputStream fdIn = new FileInputStream(FileDescriptor.in);

FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);

FileOutputStream fdErr = new FileOutputStream(FileDescriptor.err);

setIn0(new BufferedInputStream(fdIn));

setOut0(newPrintStream(fdOut, props.getProperty(“sun.stdout.encoding”)));

setErr0(newPrintStream(fdErr, props.getProperty(“sun.stderr.encoding”)));

這其中 setOut0 就是用來設置 System.out  的,setOut0 看不到源碼的,它是在java虛擬中的。

java的類型參數是什麼意思

應該是泛型中提到的一個概念,T 表示傳入任意參數,在給一個泛型類初始化的時候我們要給它傳入具體的值,一般是一個類型,如String,Integer或者是一個java bean類型的數據,這時候,String是作為一個參數傳過去的,但它表示的是一個字元串類型,也就是傳入了String類型的參數。此時String就是一個參數,一個類型參數。如Liststring testList = new Liststring(); 一個泛型數組,我們要規定該list中只能傳入字元串怎麼辦,這時就給他傳入一個String類型參數,只要傳入其他類型就會在編譯期報錯,這也是泛型的一個優點。

原創文章,作者:IM0X3,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/129328.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IM0X3的頭像IM0X3
上一篇 2024-10-03 23:26
下一篇 2024-10-03 23:26

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論