java第二階段day1

-----------------------------------------------------
unicode: 統一編碼 一個字母和一個漢字都是佔2個字節java

GBK:中國的漢字編碼,GB2312 ,GBK的範圍比GBK2312更廣
一個字母佔1個字節 一個漢字佔2個字節面試

UTF-8: 一個字母佔1一個字節 一個漢字佔 3個字節
----------------------------------------------------數組

io 體系
一、io -- > input:讀取  output:寫入
二、io 做用 -- 讀取數據和寫入數據安全

io 體系的類都包含在 java.io 包
三、io分類
        1 按數據方向來分類 讀取流(Input,reader)和寫入流(Outerput,writer)
        2 按數據的類型分類 字節流(以Stream結尾)和字符流(以reader,writer結尾)
字符流是在字節流的基礎上家裏編碼機制編碼

字節流 InputStream OutputStream線程

public class InputStream1 {
 public static void main(String[] args) throws Exception {
  InputStream input = new FileInputStream("d:\\aa.txt");//指定路徑
 
  byte[] b = new byte[4];code

  //int length = 0;
  while((length = input.read(b)) != -1){//第一次存4個 
//第二次從新賦值(覆蓋)
  System.out.println(new String(b,0,b.length));
  }對象

 }unicode

}get

------------------
public class OutPutStream1 {

 public static void main(String[] args) throws Exception{
  OutputStream output = new FileOutputStream("D:\\1510.txt");

  Scanner sc = new Scanner(System.in);
  while(true){
   String str = sc.next();
   if("886".equals(str)){break;}
   output.write(str.getBytes());
   output.write("\r\n".getBytes());//回車換行
  }

 }

}


----------------

字符流 BufferedReader BufferedWriter
      


public class BufferRead {

 public static void main(String[] args) throws Exception {
  Reader reader = new FileReader("d:\\copy.txt");
  BufferedReader bf = new BufferedReader(reader);
  String str;
  //readLine() 讀取整行內容
  while((str = bf.readLine()) != null){
   System.out.println(str);
  }
  

 }

}
-----------------

//接收鍵盤錄入的多行數據,將它寫到文件中。BufferedWriter,須要條件。
public class BufferedWriterDemo1 {
 public static void main(String[] args) throws Exception {
  BufferedWriter bw = new BufferedWriter(new FileWriter("f:\\aaa.txt"));
  Scanner input = new Scanner(System.in);
  String str = null;
  while(true){
   str = input.nextLine();
   if("886".equals(str)){
    break;
   }
   //寫數據
   bw.write(str);
   //寫入換行符。
   bw.newLine();//根據平臺的不一樣,寫入的換行符也會不同。
   bw.flush();
  }
  bw.close();
  
 }

}
---------------

緩衝流 BufferedInputStream   BufferedOuterputStream

//效率上。用法跟InputStream是同樣的。內部有一個內置的緩衝區。
public class BufferedOutputStream1 {

 public static void main(String[] args)throws Exception {
  BufferedOutputStream bs = new BufferedOutputStream(new FileOutputStream
  ("d:\\d.txt"));

  byte[] b = new byte[1024];
  Scanner sc = new Scanner(System.in);
  while(true){
  String str = sc.next();
  if("1".equals(str)){break;}
  
  b = str.getBytes();
  
  bs.write(b);
  bs.flush();
  }
  bs.close();
 }

}
-------------
單例模式

/*單例模式
 * 1:構造方法私有化。
 */
public class SingInstance {
 private SingInstance(){
  
 }
  private static SingInstance single;//懶漢式。在聲明的時候沒有給它建立對象。
 public static SingInstance getInstance(){//線程不安全。講線程的時候再解決問題。
  if(single==null){
   single = new SingInstance();
  }
  return single;
 }
}
------------

/*單例模式
 * 1:構造方法私有化。
 * 2:聲明一個靜態的成員變量。
 * 3:提供一個公共的方法,返回該類的實例。
 * 餓漢式跟懶漢式的區別
 * 1:項目中用餓漢式。而面試常常問懶漢式。
 * 2:懶漢式代碼是有缺陷的,會出現問題。
 */
public class SingInstance2 {
 private SingInstance2() {

 }

 private static SingInstance2 single = new SingInstance2();// 餓漢式。

 public static SingInstance2 getInstance() {
  return single;
 }
}
---------------------------------------------------------------------------------------------------------------------

 

 

public class CopyMethod {
// private String rpath;  //讀取路徑
// private String wpath;  //寫入的路徑
 
 //字節流
 public void method(String rp,String wp) throws IOException{
  OutputStream os = new FileOutputStream(wp);
  InputStream is = new FileInputStream(rp);
  
  int l = is.available();
  //讀取文件到數組B裏
  byte[] b = new byte[l];
  int length = 0;
  while((length = is.read(b,0,l)) != -1){
  //把數組B中的數據寫入文件
  os.write(b);
  }
  os.close();
  is.close();
 }
 
 //字符流
 public void method2(String rp,String wp) throws IOException{
  Reader r = new FileReader(rp);
  Writer w = new FileWriter(wp);
  BufferedReader br = new BufferedReader(r);
  BufferedWriter bw = new BufferedWriter(w);

  String str;  //讀取數據  while((str = br.readLine()) != null){   //寫入數據   bw.write(str);   bw.flush();  }    bw.close();  br.close(); }   //緩衝流 public void method3(String rp,String wp) throws IOException{   OutputStream os = new FileOutputStream(wp);   InputStream is = new FileInputStream(rp);   BufferedOutputStream bos = new BufferedOutputStream(os);   BufferedInputStream bis = new BufferedInputStream(is);   int l = bis.available();   byte[] b = new byte[l];   int length = 0;   //讀取   while((length = bis.read(b,0,l)) != -1){    //寫入    bos.write(b,0,length);    bos.flush();   }   bos.close();   bis.close(); }   public static void main(String[] args) throws IOException {  CopyMethod copy = new CopyMethod();  copy.method("D:\\mp3\\許嵩 - 認錯.mp3","D:\\ - 認錯.mp3");  //copy.method2("D:\\mp3\\許嵩 - 認錯.mp3","D:\\許 - 認錯.mp3");  //copy.method3("D:\\mp3\\許嵩 - 千百度.mp3","D:\\許- 千度.mp3");     }    }

相關文章
相關標籤/搜索