1. 程式人生 > >java中使用檔案輸入流和檔案輸出流進行檔案讀寫的用例!

java中使用檔案輸入流和檔案輸出流進行檔案讀寫的用例!

package com.cfkyit.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 *
 * @author michael
 * 用例內容:檔案輸入流和檔案輸入流結合用例,位元組流方式
 * 時間:2008-07-22
 * 注意事項:檔案輸入流和檔案輸出流都是相對與記憶體來說的,例如通過程式讀取檔案時往記憶體輸入資料就是檔案輸入流
 */

public class FileInputOrOutput {

 public static void main(String[] args) {

  // 檔案或者路徑名的抽象表現形式,意思就是說之後如果進行操作的話就是全部在這個抽象路徑名所指向的檔案或者檔案加中
  File file = new File("e:/test.txt");
  File file2 = new File("e:/test1.txt");
  
  // 檔案位元組數的個數
  // System.out.println(file.length());
  try {

   /*------------------------------------------讀操作部分-----------------------------------------------*/
   //檔案輸入流物件
   InputStream fis = new FileInputStream(file);

   // 檔案輸入流物件所讀取的位元組數大小
   // System.out.println(fis.available());

   /**
    * 1.按照一個位元組為單位進行讀取資料,弊端是遇到中文就會把中文的漢字拆開從而出現亂碼
    */

   // //流物件讀出的返回值是每次所讀到的一個字元所對應的ascii碼值
   // int i = fis.read();
   //   
   // //如果已經讀到檔案尾則i==-1,此時終止迴圈
   // while(i!=-1){
   // System.out.print((char)i);
   // 保證每一次迴圈都繼續往後讀取一個字元,否則i的值不變會成為死迴圈
   // i = fis.read();
   // }
   /**
    * 2.按照一個位元組陣列所指定的大小為單位進行讀取,每次最多可以讀取陣列定義的大小的位元組個數
    */

   // 每次讀取都以1K位元組作為單位來進行
   byte b[] = new byte[1024];

   // 流物件讀出並返回的是每次讀取位元組的個數,最大每次讀取自己數可以和陣列b.length相同
   // b中儲存了每次所讀取的所有資料
   int i = fis.read(b);

   String str = "";
   // 如果已經讀到檔案尾則i==-1,此時終止迴圈
   while (i != -1) {
    // 把每次讀取的位元組陣列解碼為字串
    // 引數1:要解碼為字元的位元組
    // 引數2:要解碼的首字元的索引
    // 引數3:要解碼的位元組的個數,如果檔案個數大於所設定的一次讀取檔案的大小時i的取值就是
    // b.length,否則小於陣列的位元組大小時則為實際的讀取出自己數的大小
    str = str + new String(b, 0, i);

    // 保證每一次都往檔案的下一部分進行讀取,否則i值沒有變化會成為死迴圈
    i = fis.read(b);
   }

   // System.out.print(str);

   // 關閉輸入流物件
   fis.close();
  
   /*------------------------------------------寫操作部分-----------------------------------------------*/
   //檔案輸出流物件
   OutputStream fos = new FileOutputStream(file2);
   
   //str是從file所指定的檔案中讀出的所有內容,將此內容寫入另一個檔案中
   //將字元解碼為位元組陣列
   byte b2[] = str.getBytes();
   
   //將解碼後的位元組陣列,通過檔案輸出流物件寫入到緩衝區中
   fos.write(b);
   //強制將緩衝區中的內容輸出到檔案中
   fos.flush();
   //關閉輸出流物件
   fos.close();
   
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }

 }
}

相關推薦

java輸入兩個數,輸出較大的數

ring bsp println OS [] tint sys span 適用於 第一種 1 import java.util.*; 2 public class A{ 3 public static void main(String[] args){ 4

IO第四課位元組輸出字元輸出

  這節課講位元組輸出流和字元輸出流     輸出流和輸入流差不多,只不過輸入流是讀取檔案內容,輸出流是向檔案中寫入內容     直接看Demo吧:   Demo1: 通過位元組輸出流寫入檔案 public st

淺談Java的鎖:Synchronized、重入鎖、

tps 訪問限制 三種 ron 單線程 new t try end 必須 Java開發必須要掌握的知識點就包括如何使用鎖在多線程的環境下控制對資源的訪問限制 ◆Synchronized◆ 首先我們來看一段簡單的代碼: public class NotSyncDemo {

java使用檔案輸入檔案輸出進行檔案

package com.cfkyit.io; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutp

Java資料輸入輸出——DataInputStreamDataOutputStream

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

argo的輸入輸出--outputinput輸出目錄或檔案到下一步驟

轉載請註明出處: argo的輸入輸出–output和input輸出目錄或檔案到下一步驟 有部分場景需要使用output把目錄或者檔案傳遞到下一個步驟。 argo提供了兩種方式 一種是引數方式parameter 一種是元件方式artifacts 各自適用於不同的場景,引數方式是

java檔案操作 (1)——判別指定檔案是否存在,讀取檔案修改時間大小,讀取文字檔案內容,向文字檔案寫入指定內容

任務要求: 完成一個java application應用程式,判別指定路徑下指定檔名的檔案是否存在。 如果指定檔案存在,讀取並分別顯示其修改時間和檔案大小等屬性。 以文字方式開啟某一指定路徑指定檔名的文字檔案,讀取其內容並顯示。 以文字方式向某

java標準輸入輸出

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

java如何用LOG列印日誌並輸出資訊到檔案

使用log4j.jar。log4j 是apache 提供的記錄日誌的jar 檔。 除了這個包外,還需要另一個jar包:.commons-logging.jar commons-logging.jar是配合log4j.jar列印輸出日誌必備的jar包。 下面我們就

java 使用輸入+輸出對對象序列化

mage urn NPU 分享圖片 get found otf spa class 對象: 註意記得實現 Serializable package com.nf147.sim.entity; import java.io.Serializable; public

1 Java程式檔案函式起始行終止行在程式檔案位置的判定__抽象語法樹方法

應用需求: 實現對BigCloneBench中函式體的克隆檢測,必須標註出起始行號和終止行號。 問題: 給定一個Java檔案,從中提取出每個函式的起始行和終止行。 難點: 這個問題的難點在於,對於Java的解析器而言,其在形成抽象語法樹的過程中,已經對原始碼檔案進行了劃分,然後,形成了對函式的抽象語

Java輸入輸出重定向

        在Java程式中,如果需要輸入大量的數值,那麼從鍵盤上輸入是非常繁瑣的事。可以將這些資料用空格隔開,儲存在一個名為input.txt的文字檔案中,然後使用Java輸入和輸出重定向。例如需

java對於輸入輸出的一個簡單概念瞭解

在I/O中有著“流”的抽象概念,它代表任何有能力產出資料的資料來源物件或者是有能力接收資料的接收端物件。Java類庫中的I/O類分成輸入和輸出兩部分。輸入:通過繼承,任何自Inputstream或Reader派生而來的類都含有名為read()的基本方法,用於讀取單個位元組或者

Java輸入輸出

ace adl import package 特定 文件流 flush print 技術 一、流的概念 在Java中,流是從源到目的地的字節的有序序列。Java中有兩種基本的流——輸入流(InputStream)和輸出流(OutputStream)。 根據流相對

Java標準輸入輸出的重定向

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

Java的文件stream的操作代碼

yui ani filter char arraylist nbsp package 效果 set 1.Java中FileRead方法的運用代碼及詳解 package example2;import java.io.FileReader;import java.io.IOE

使用kettle將csv格式檔案輸入,sql表輸出

1.    在kettle中新建一個轉換,再儲存,再點選新建一個DB連線, 2.    Csv檔案內容 3.    按住shift連線兩個圖示,

Java輸入/輸出

位元組流和字元流 位元組流和字元流的操作幾乎完全一樣,不同的是位元組流操作的資料單元是位元組,而字元流操作的是字元。 InputStream和Reader InputStream和Reader是所有輸入流的抽象基類。 在InputStream裡包含的三個方法: i

讀取csv檔案,1min k線輸出到csv檔案,計算5s,10s,20s移動平均值

參考: C字串轉換為int,float https://blog.csdn.net/li6727975/article/details/42875641 結構體 http://www.runoob.com/cprogramming/c-structures.htm

Log4j infoerror輸出到不同檔案

1、log4j提供了為不同的 Appender 設定日誌輸出級別的功能,方法是配置Appender的Threshold(log4j.appender.D.Threshold = DEBUG)。例如: ### set log levels ### log4j.rootLog