從鍵盤輸入一個字符串,將小寫字母所有轉換成大寫字母,而後輸出到一個磁盤文件"test"中保存java
思路比較簡單,先用Scanner對象得到一個字符串。而後建立文件,而後在將字符串輸入到指定的文件中網絡
按照數據來源(去向)分類:
1.是文件:FileInputStream,FileOutputStream,FileReader,FileWriter
2.是byte[]:ByteArrayInputStream,ByteArrayOutputStream
3.是Char[]:CharArrayReader,CharArrayWriter
4.是String:StringBufferInputStream,StringReder,StringWriter
5.網絡數據流:InputStream,OutputStram,Reader,Writerthis
按是否格式化輸出
1.要格式化輸出:PrintStream PrintWriter編碼
按是否要緩衝分:
要緩衝:BufferedInputStream,BufferedOutputStream,BufferOutputStream,BufferWritercode
按照數據格式分:
1.二進制格式(只要不能七肯定是純文本的):InputStream,OutputStream以其全部帶Stream結束的子類
2.含應爲和漢字或者其餘編碼方式:Reader,Writer及其全部帶Reader,Writer的子類對象
按輸入輸出分:
1.輸出:Reader,InputStream類型的子類
2.輸出:Writer,OutputStream類型的子類
特殊須要:
1.從Stream到Reader,Writer的轉換器,InputStreamReader,OutputStreamWriter
2.對象的出入輸出:ObjectInputStream,ObjectOutputStream
3.進程間通訊:PipeInputStream,PipeOutputStream,PipeWriter,PipeWriter
4.合併輸入:SequenceInputStream
決定使用哪一個類以及構造進程的準組:
1.考慮最原始的數據格式是什麼
2.是輸入仍是輸出
3.是否須要轉換流
4.數據的去向
5.是否須要緩衝
6.是否須要格式化輸出。進程
Java.io.Reader和java.io.InputStream組成了Java輸入類。Reader用於讀入16位字符,也就是Unicode編碼字符,而InputStream用於讀入ASCII字符和二進制數據。
對應的輸出類也有差很少的區別。ip
import java.io.*; import java.util.Scanner; public class Test{ private String inputStr; public void setInputStr(String Str){ this.inputStr=Str.toUpperCase(); } public String getInputStr(){ return this.inputStr; } public void Save(String path){ File file=new File(path); if(file.exists()){ System.out.println("建立單個文件"+path+"失敗,目標文件已經存在"); } if(path.endsWith((File.separator))){ System.out.println("建立單個文件"+path+"失敗,目標文件不能是目錄"); } if(!file.getParentFile().exists()){ System.out.println("目標文件所在的目錄不存在,準備建立它!"); if(!file.getParentFile().mkdirs()){ System.out.println("建立目標文件所在的目錄失敗!"); } } try{ Printstream(file); Filewriter(file); Printwriter(file); FileOutstream(file); }catch(Exception e){ e.printStackTrace(); } } public void Printstream(File file){ try{ PrintStream ps =new PrintStream(new FileOutputStream(file)); ps.println(this.getInputStr()); }catch(FileNotFoundException e){ e.printStackTrace(); } } public void Filewriter(File file){ try{ FileWriter fw=new FileWriter(file.getAbsolutePath(),true); BufferedWriter bw=new BufferedWriter(fw); bw.write(this.getInputStr()); bw.close(); fw.close(); }catch(IOException e){ e.printStackTrace(); } } public void Printwriter(File file){ try{ PrintWriter pw=new PrintWriter(new FileWriter(file.getAbsolutePath())); pw.println(this.getInputStr()); pw.close(); }catch(IOException e){ e.printStackTrace(); } } public void FileOutstream(File file){ try{ FileOutputStream fos=new FileOutputStream(file.getAbsolutePath()); fos.write(this.getInputStr().getBytes()); fos.close(); }catch(IOException e){ e.printStackTrace(); } } public static void main(String[] args){ Scanner in =new Scanner(System.in); String Str=in.nextLine(); Test temp=new Test(); temp.setInputStr(Str); temp.Save("D:\\temp\\test.txt"); } }