麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

java筆記八:IO流之字符流與字符緩沖流

2019-11-17 03:27:27
字體:
來源:轉載
供稿:網友

  java中字符流主要都是繼承于Reader和Writer兩個抽象類。用于對字符文本的讀寫操作。

 一、轉換類流


 1 package com.iotest;
 2
 3 import java.io.FileInputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 import java.io.InputStreamReader;
 8 import java.io.OutputStreamWriter;
 9
10 public class ConverseStreamDemo {
11
12     public static void main(String[] args) {
13         String s = "F://shar//test//test3.txt";
14         try {
15             //將字節流轉為字符流
16             OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(s));
17             osw.write("中國北京");
18             System.out.PRintln(osw.getEncoding());
19             osw.close();
20             osw = new OutputStreamWriter(new FileOutputStream(s,true),"GB2312");
21             osw.write("中國北京");
22             System.out.println(osw.getEncoding());
23             osw.close();
24         } catch (FileNotFoundException e) {
25             // TODO Auto-generated catch block
26             e.printStackTrace();
27         } catch (IOException e) {
28             // TODO Auto-generated catch block
29             e.printStackTrace();
30         }
31         try {
32             //將字節流轉為字符流
33             InputStreamReader isr = new InputStreamReader(new FileInputStream(s),"GB2312");
34             int c;
35             while((c=isr.read()) != -1){
36                 System.out.print((char)c);
37             }
38             System.out.println();
39             isr.close();
40         } catch (FileNotFoundException e) {
41             // TODO Auto-generated catch block
42             e.printStackTrace();
43         } catch (IOException e) {
44             // TODO Auto-generated catch block
45             e.printStackTrace();

46         }
47     }
48
49 }

 

二、FileReader和FileWriter


 1 package com.iotest;
 2
 3 import java.io.FileNotFoundException;
 4 import java.io.FileReader;
 5 import java.io.FileWriter;
 6 import java.io.IOException;
 7 /*
 8  * 使用flush()將流數據刷到目標里,這時流還存活著,還可以繼續使用該流進行別的操作。
 9  * close()雖然也有flush()的效果但是這時流已經死了,你如果想繼續使用流的話就必須在此建立流
10  */
11 public class MutiplicationTable {
12    
13     public static void main(String[] args) throws IOException {
14         String s = "F://shar//test//test5.txt";
15         FileWriter fw = new FileWriter(s);
16         FileReader fr = new FileReader(s);
17         for (int i = 1; i <= 9; i++) {
18             for (int j = 1; j <= i; j++) {
19                 String str = i + "*" + j + "=" + i*j + " ";
20                 fw.write(str);
21             }
22             fw.write("/r/n");
23             /*flush是指強行將輸出流中的數據寫到文件里面去。如果寫到這里的話就是一行一行的寫入文件
24              *最好每寫完一部分就刷新一次,如果最后刷新的話可能會造成數據的丟失
25              */
26             fw.flush();
27         }
28         //如果又不寫flush()又不寫close(),則不會寫入任何內容到文本里。只是寫到了緩沖區
29         //fw.flush(); 寫到這里的話就是所有的內容一起寫進文件
30         //fw.close(); close之前會調用flush()
31         //讀字符輸入流的數據
32         int c;
33         while ((c=fr.read())!=-1) {
34             System.out.print((char)c);
35         }
36     }
37
38 }

 

三、BufferedReader和BufferedWriter


 1 package com.iotest;
 2
 3 import java.io.BufferedOutputStream;
 4 import java.io.BufferedWriter;
 5 import java.io.FileOutputStream;
 6 import java.io.FileWriter;
 7 import java.io.IOException;
 8
 9 public class PrimeNumber {
10     BufferedWriter bw = null;
11     String fileName = "F://shar//test//test7.txt";
12     //判斷是否是質數
13     public boolean isPrime(int n){
14         for(int i=2;i<=n/2;i++){
15             if(n%i == 0){
16                 return false;
17             }
18         }
19         return true;
20     }
21     void printPrime(int m) throws IOException{
22         //將字節流轉緩沖流
23         bw = new BufferedWriter(new FileWriter(fileName));
24         int j = 0;
25         for (int i = 2; i < m; i++) {
26             if(isPrime(i)){
27                 j++;
28                 String s = String.valueOf(i);
29                 String s1 = s + " ";
30                 bw.write(s1);  //寫入文本文件
31                 if(j==10){
32                     j = 0;
33                     bw.newLine();  //寫入一個行分隔符
34                     bw.flush();  //強制刷新
35                 }
36             }
37         }
38        
39         bw.close();
40     }
41     public static void main(String[] args) throws IOException {
42         PrimeNumber pn = new PrimeNumber();
43         pn.printPrime(100);
44     }
45
46 }


四、PrintWriter


 1 package com.iotest;
 2
 3 import java.io.FileWriter;
 4 import java.io.IOException;
 5 import java.io.PrintWriter;
 6
 7 public class PrintWriterDemo {
 8
 9     public static void main(String[] args) throws IOException {
10         int A = 0;  //千位
11         int B = 0;  //百位
12         int C = 0;  //十位
13         int num = 0;
14         String fileName = "F://shar//test//test8.txt";
15         FileWriter fw = new FileWriter(fileName); //字符輸出流
16         PrintWriter pw = new PrintWriter(fw);     //將字節輸出流轉為PrintWriter
17         for (int i = 1000; i < 10000; i++) {
18             A = i/1000;
19             B = i/100 % 10;
20             C = i/10 % 10;           
21             if(i%11==0 && A == B+C){
22                 pw.print(i+" ");
23                 if(++num % 7 == 0){
24                     pw.println();  //寫入回車換行
25                     pw.flush();    //強制刷新流
26                 }
27             }
28         }
29         fw.close();
30        
31     }
32
33 }

五、標準IO


 1 package com.iotest;
 2
 3 import java.io.BufferedReader;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 import java.io.InputStreamReader;
 7 import java.io.PrintWriter;
 8 import java.util.Scanner;
 9
10 public class PackStardIO {
11
12     public static void main(String[] args) throws IOException {
13         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
14         PrintWriter o = new PrintWriter(System.out);  //包裝標準輸出
15         String s;
16         while((s=br.readLine())!=null && s.length()!=0){
17             o.println(s.toUpperCase());
18             //o.flush();   //一定要強制刷新讓其輸出來,否則不會輸出
19         }
20     }
21
22 }

 


 1 package com.iotest;
 2
 3 import java.io.BufferedInputStream;
 4 import java.io.BufferedOutputStream;
 5 import java.io.BufferedReader;
 6 import java.io.FileInputStream;
 7 import java.io.FileNotFoundException;
 8 import java.io.FileOutputStream;
 9 import java.io.IOException;
10 import java.io.InputStreamReader;
11 import java.io.PrintStream;
12
13 public class StandardIORedirect {
14
15     public static void main(String[] args) throws IOException {
16         PrintStream console = System.out;
17         BufferedInputStream in = new BufferedInputStream(new FileInputStream("C://Documents and Settings//01//桌面//Test//src//com//iotest//StandardIORedirect.java"));
18         PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream("F://shar//test//test9.txt")));
19         System.setIn(in);     //對標準輸入流重定向
20         System.setOut(out);
21         System.setErr(out);
22         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
23         String s;
24         while((s=br.readLine())!=null){   //從BufferedReader中讀取一行數據
25             System.out.println(s);
26         }
27         out.close();
28         System.setOut(console);
29     }
30
31 }


六、隨即訪問文件類


 1 package com.iotest;
 2
 3 import java.io.FileNotFoundException;
 4 import java.io.IOException;
 5 import java.io.RandomaccessFile;
 6
 7 public class RandomRW {
 8     public static void main(String[] args) throws IOException {
 9         RandomAccessFile raf = new RandomAccessFile("F://shar//test//test10.dat","rw");
10         final int DOUBLE_SIZE = 8;
11         for (int i = 0; i < 10; i++) {
12             raf.writeDouble(i);
13             System.out.print(" " + (double)i);
14         }
15         System.out.println();
16         raf.close();
17         RandomAccessFile raf1 = new RandomAccessFile("F://shar//test//test10.dat","rw");
18         raf1.seek(3*DOUBLE_SIZE);  //找到某個位置
19         raf1.writeDouble(300);     //往該位置插入數據
20         raf1.seek(5*DOUBLE_SIZE);
21         raf1.writeDouble(500);
22         raf1.close();
23         RandomAccessFile raf2 = new RandomAccessFile("F://shar//test//test10.dat","r");
24         for (int i = 0; i < 10; i++) {
25             System.out.print(" "+raf2.readDouble());
26         }
27         raf2.close();
28     }
29
30 }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久一区二区三区精品 | 国产精品视频中文字幕 | 精品一区二区在线观看 | 免费看搡女人无遮挡的视频 | 韩国一级免费视频 | 97se亚洲综合在线韩国专区福利 | 色人阁导航 | a一级黄色大片 | 日韩大片在线永久观看视频网站免费 | 亚洲精品有限 | 91av99| 中文字幕在线看第二 | 欧美精品一区二区中文字幕 | 午夜精品在线视频 | 国产91丝袜在线播放 | 亚洲免费资源 | 在线观看免费污视频 | 天天干干 | 久久毛片 | 成人羞羞视频在线观看免费 | 国产精品久久国产精麻豆96堂 | 亚洲国产精品一区二区久久 | 黄色免费在线视频网站 | 成人不卡一区二区 | 日本一区二区高清不卡 | 法国极品成人h版 | 在线成人一区二区 | 国产精品自拍99 | 成人三级电影在线 | 久久久一区二区三区精品 | av在线免费观看网 | 久久99精品久久久久久青青日本 | 亚洲影视在线 | 国产精品午夜未成人免费观看 | 成人一区二区在线观看视频 | 欧美久久久一区二区三区 | 久久看免费视频 | 美女扒开腿让男生桶爽网站 | 自拍偷拍999| 国产韩国精品一区二区三区久久 | 性爱在线免费视频 |