جاوا د فایلونو لوستلو لپاره ډیری میتودونه چمتو کوي. د دې هر یو میتود په مختلف حالتونو کې د مختلف ډوله فایلونو لوستلو لپاره مناسب دی. ځینې د اوږد فایلونو لوستلو لپاره غوره دي ، نور یې د لنډ لنډو لوستلو لپاره غوره دي ، وغيره.
پدې لوست کې ، موږ به د فایلونو لوستلو لپاره لاندې جاوا ټولګیو څخه کار واخلو
د لارښود په جریان کې ، موږ په | _ _ _ _ | کې ساتل شوې فایل کار کوو لارښود چېرې چې فایل ته لاره ده | _ _ + _ |
د پروسې دمخه په دې فایل کې د متن ډیری کرښې ذخیره کړئ.
یادونه:تاسو باید په سم ډول د غلطیو اداره کړئ کله چې د دې تطبیقاتو کارولو لپاره غوره کوډ کولو غوره عمل ته ودرېږئ.| src
کلاس د کرکټر - انډول جریان لوستل. دا د 8 KB د ډیفالټ اندازې سره بفر کې کرکټرونه بفر کوي ترڅو د لوستلو پروسه نوره اغیزمنه کړي. که تاسو غواړئ د فایل لاین په کرښه ولولئ ، د بفرډیرډر کارول غوره انتخاب دی.
src/file.txt
د لوی فایلونو لوستلو کې اغیزمن دی.
BufferedReader
| BufferedReader
کله چې د فایل پای پای ته ورسیږي میتود بیرته راستانه کیږي.
موږ کولی شو | import java.io.*; public class FileReaderWithBufferedReader {
وکاروو ټولګی د UTF-8 کوډ شوی فایل لوستلو لپاره.
public static void main(String[] args) throws IOException{We
String file = 'src/file.txt';
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String curLine;
while ((curLine = bufferedReader.readLine()) != null){
//process the line as required
System.out.println(curLine);
}
bufferedReader.close();
} }
دا وخت ، موږ یو readline()
| اعتراض کله چې یو جوړ کړئ | مثال
BufferedReader
جاوا InputStreamReader
ټولګی ، په جاوا NIO کې جاوا 7 کې معرفي شوی ، په بشپړ ډول له جامد میتودونو څخه جوړ دی چې په فایلونو کار کوي.
د BufferedReader
کارول ټولګی ، تاسو کولی شئ په فایل کې د فایل بشپړ مینځپانګه ولولئ. دا د کوچني فایلونو لوستلو لپاره غوره انتخاب رامینځته کوي.
راځئ وګورو چې موږ څنګه کولی شو پدې دواړه سناریوګانو کې د فایلونو کلاس وکاروو.
| import java.io.*; public class EncodedFileReaderWithBufferedReader {
د
public static void main(String[] args) throws IOException {
String file = 'src/fileUtf8.txt';
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), 'UTF-8'));
String curLine;
while ((curLine = bufferedReader.readLine()) != null){
//process the line as you require
System.out.println(curLine);
}
} } Files
طريقه ټولګی د فایل ټوله مینځپانګه لوستلو ته اجازه ورکوي او هره کرښه د تارونو په توګه په صف کې ساتي.
تاسو کولی شئ | _ _ + _ | وکاروئ ټولګی د فایل ته د لارې تر لاسه کولو لپاره | Files
ټولګي | readAllLines()
مني د دوتنې څيز.
Files
تاسو کولی شئ | _ _ + _ | وکاروئ ترڅو په فایل کې زیرمه شوي ډاټا د سټین سر په ځای بایټ صف ته لاسرسی ومومئ.
Path
که تاسو غواړئ د | _ _ + _ | سره لوی فایل ولولئ ټولګي ، تاسو کولی شئ | _ _ + _ | وکاروئ د Files
بېلګې ترلاسه کولو طريقه ټولګی او د | _ _ _ _ | په کارولو سره د دوتنې ليکه په کرښه کې لوستل.
Path
جاوا 8 د فایلونو کلاس ته نوی میتود معرفي کړ ترڅو ټوله فایل په import java.io.IOException; import java.nio.file.*; import java.util.*; public class SmallFileReaderWithFiles {
کې لوستل شي د تارونو.
public static void main(String[] args) throws IOException {
String file = 'src/file.txt';
Path path = Paths.get(file);
List lines = Files.readAllLines(path);
} }
readAllBytes()
| byte[] bytes = Files.readAllBytes(path);
ټولګي د ورکړل شوي ډیلیمټر په کارولو سره د فایل مینځپانګې برخو ته ماتوي او په ګډه برخه یې لوستل. دا لید د مینځپانګې لوستلو لپاره غوره دی چې د ډیلیمټر لخوا جلا شوی.
د مثال په توګه ، | _ _ _ _ | طبقه د انډیژور لیست لوستلو لپاره غوره ده چې د سپینو ځایونو لخوا جلا شوي یا د کوما لخوا جلا شوي تارونو لیست.
د Files
اصلي ډيليميټر ټولګي سپین دی. مګر تاسو کولی شئ ډیمیټر بلې کرکټر یا منظم بیان ته وټاکئ. دا مختلف بیلابیل میتودونه هم لري ، لکه | _ _ + _ | ، newBufferedReader()
، BufferedReader
، او BufferedReader
، چې مینځپانګې په مختلف ډوله بدلوي.
import java.io.*; import java.nio.file.*; public class LargeFileReaderWithFiles {
public static void main(String[] args) throws IOException {
String file = 'src/file.txt';
Path path = Paths.get(file);
BufferedReader bufferedReader = Files.newBufferedReader(path);
String curLine;
while ((curLine = bufferedReader.readLine()) != null){
System.out.println(curLine);
}
bufferedReader.close();
} }
په پورتنۍ مثال کې ، موږ سپم رسۍ ته حد بندی ټاکو او د Stream
کارول د مینځپانګې راتلونکې برخې لوستلو لپاره میتود چې د سپین ځای لخوا جلا شوی.
تاسو کولی شئ | _ _ + _ | وکاروئ ټولګي په یوځل کې د ټولې دوتنې لوستلو لپاره پرته لپ چل کړئ. تاسو پاس کول import java.io.IOException; import java.nio.file.*; import java.util.stream.Stream; public class FileReaderWithFilesLines {
| د دې لپاره د حد ټاکونکي په توګه.
public static void main(String[] args) throws IOException {
String file = 'src/file.txt';
Path path = Paths.get(file);
Stream lines = Files.lines(path);
lines.forEach(s -> System.out.println(s));
lines.close();
} }
Scanner
یادونه:د سکینر کلاس ترکیب شوی ندی او له همدې امله ، د تار خوندي نه دی.لکه څنګه چې تاسو پدې لوست کې ولیدل ، جاوا ډیری میتودونه وړاندې کوي چې تاسو یې کولی شئ په خپل لاس کې د دندې د نوعیت له مخې د متن فایلونو لوستلو لپاره وټاکئ. تاسو کولی شئ | _ _ + _ | وکاروئ په لیکه د لوی فایلونو لوستل.
که تاسو غواړئ داسې فایل ولولئ چې خپل مینځپانګې د ډیلیمټر لخوا جلا شوي وي ، نو | _ _ + _ | وکاروئ ټولګی.
همدارنګه تاسو کولی شئ د جاوا NIO Scanner
وکاروئ ټول کوچني او لوی فایلونه لوستل.