مشخصات مقاله
-
1418
-
0.0
-
2762
-
0
-
0
آموزش Java – کار با کلاس SequenceInputStream در Java
آموزش Java – کار با کلاس SequenceInputStream در Java
کلاس SequenceInputStream در جاوا جهت خواندن داده از چندین input stream (برای مثال چند فایل ورودی) که در قالب یک sequence واحد به ترتیب به یکدیگر متصل شده اند، بکار می رود. این کلاس داده ها را به صورت متوالی و یکی پس از دیگری از input stream های متصل شده به هم می خواند.
به عبارت دیگر یک آبجکت از جنس کلاس SequenceInputStream نشانگر یک inputStream واحد است که چندین input stream دیگر را به ترتیب در خود جای داده.
دستور تعریف کلاس SequenceInputStream در Java
در زیر نحوه ی تعریف کلاس Java.io.SequenceInputStream را مشاهده می کنید:
public class SequenceInputStream extends InputStream
توابع سازنده (Constructor) از کلاس SequenceInputStream
متدهای کلاس SequenceInputStream
مثال کاربردی از SequenceInputStream در Java
در مثال جاری، داده هایی را از دو فایل testin.txt و testout.txt خوانده و در خروجی چاپ می کنیم.
package com.javatpoint;
import java.io.*;
class InputStreamExample {
public static void main(String args[])throws Exception{
FileInputStream input1=new FileInputStream("D:\\testin.txt");
FileInputStream input2=new FileInputStream("D:\\testout.txt");
SequenceInputStream inst=new SequenceInputStream(input1, input2);
int j;
while((j=inst.read())!=-1){
System.out.print((char)j);
}
inst.close();
input1.close();
input2.close();
}
}
در مثال حاضر، فرض را بر این مگذاریم که محتوای دو فایل testin.txt و testout.txt به ترتیب به شرح زیر می باشند:
: testin.txt
Welcome to Java IO Programming.
testout.txt:
It is the example of Java SequenceInputStream class.
با اجرای برنامه، خروجی زیر را دریافت می نمایید. همان طور که مشاهده می کنید محتوای دو فایل به صورت متصل، متوالی و پشت سرهم نمایش داده شده است.
خروجی:
Welcome to Java IO Programming. It is the example of Java SequenceInputStream class.
در زیر مثالی را مشاهده می کنید که در آن داده از دو فایل خوانده شده و در فایل دیگری درج (نوشته) می شود. در این مثال داده از دو فایل testin1.txt و testin2.txt خوانده شده و در فایل دیگری به نام testout.txt درج می شود.
package com.javatpoint;
import java.io.*;
class Input1{
public static void main(String args[])throws Exception{
FileInputStream fin1=new FileInputStream("D:\\testin1.txt");
FileInputStream fin2=new FileInputStream("D:\\testin2.txt");
FileOutputStream fout=new FileOutputStream("D:\\testout.txt");
SequenceInputStream sis=new SequenceInputStream(fin1,fin2);
int i;
while((i=sis.read())!=-1)
{
fout.write(i);
}
sis.close();
fout.close();
fin1.close();
fin2.close();
System.out.println("Success..");
}
}
خروجی:
Succeess...
testout.txt:
Welcome to Java IO Programming. It is the example of Java SequenceInputStream class.
مثال کاربردی از SequenceInputStream که داده را از چند فایل به وسیله ی آبجکت Enumeration می خواند
زمانی که لازم است داده هایی را چندین فایل (بیش از دو فایل) بخوانید، در آن صورت بایستی از Enumeration استفاده نمایید. جهت فراخوانی enumeration کافی است متد elements() از کلاس Vector را بر روی نمونه ای از Vector صدا زده و سپس محتوای آن را داخل متغیری از جنس Enumeration قرار دهید. در مثال زیر محتوای چهار فایل را خوانده و آن را در خروجی چاپ می کنیم.
package com.javatpoint;
import java.io.*;
import java.util.*;
class Input2{
public static void main(String args[])throws IOException{
//creating the FileInputStream objects for all the files
FileInputStream fin=new FileInputStream("D:\\a.txt");
FileInputStream fin2=new FileInputStream("D:\\b.txt");
FileInputStream fin3=new FileInputStream("D:\\c.txt");
FileInputStream fin4=new FileInputStream("D:\\d.txt");
//creating Vector object to all the stream
Vector v=new Vector();
v.add(fin);
v.add(fin2);
v.add(fin3);
v.add(fin4);
//creating enumeration object by calling the elements method
Enumeration e=v.elements();
//passing the enumeration object in the constructor
SequenceInputStream bin=new SequenceInputStream(e);
int i=0;
while((i=bin.read())!=-1){
System.out.print((char)i);
}
bin.close();
fin.close();
fin2.close();
}
}
چهار فایل a.txt، b.txt، c.txt و d.txt به ترتیب دارای محتوای زیر می باشند:
a.txt:
Welcome
b.txt:
to
c.txt:
java
d.txt:
programming
خروجی:
Welcometojavaprogramming