3 回答

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
假設(shè)您的代碼工作正常:
public static List<String> readFile(int n) throws IOException {
try(BufferedReader br = new BufferedReader(new
FileReader("C:\\\\\\\\Users\\\\\\\\Admin\\\\\\\\Desktop\\\\\\\\Work Files\\\\\\\\314-
WO0000001133814\\\\\\\\Cards\\\\\\\\MBD10760_182.out"))){
List<String> listOfData = new ArrayList<>();
String d;
while((d = br.readLine()) != null && n>0){
listOfData.add(d);
n--;
}
return listOfData;
}
只是你必須告訴循環(huán)它應(yīng)該讀多少行。如果文件少于 n 行,則 while 循環(huán)的第一條語(yǔ)句將返回 null 并中斷循環(huán)。否則,當(dāng)它讀取 n 行時(shí),由于 while 循環(huán)中的第二條語(yǔ)句,它將再次中斷循環(huán)

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
只需在檢查 listOfData 大小時(shí)添加:
while( ((d = br.readLine()) != null) && listOfData.size()<20 ) {
listOfData.add(d);
}

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
public static void main(String[] args) throws IOException {
Path pathFrom = Paths.get("C:\\Users\\Admin\\Desktop\\Work Files\\314-WO0000001133814\\Cards\\MBD10760_182.out\"");
Path pathTo = Paths.get("C:\\Users\\Admin\\Desktop\\Work Files\\314-WO0000001133814\\Cards\\MBD10760_187.out\"");
Files.write(pathTo, Files.lines(pathFrom).limit(20).collect(Collectors.toList()));
}
添加回答
舉報(bào)