[英]Read N lines from file and save it to new file
例如,如何從readFile
或n行讀取20行並將其保存到另一個文件( writeFile
)?
public class Test_read_file {
public static List<String> readFile() 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){
listOfData.add(d);
}
return listOfData;
}
}
public static void writeFile(List<String> listOfData) throws IOException{
try(BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\\\\\\\Users\\\\\\\\Admin\\\\\\\\Desktop\\\\\\\\Work Files\\\\\\\\314-WO0000001133814\\\\\\\\Cards\\\\\\\\MBD10760_187.out"))){
for(String str: listOfData){
bw.write(str);
bw.newLine();
}
}
}
public static void main(String[] args) throws IOException {
List<String> data = readFile();
writeFile(data);
}
}
假設你的代碼工作正常:
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;
}
只需要告訴循環它應該讀取多少行。 如果file少於n行,那么while循環的第一個語句將返回null並且它將打破循環。 否則,當它讀取n行時,由於while循環中的第二個語句,它將再次打破循環。
只需在檢查listOfData大小時添加:
while( ((d = br.readLine()) != null) && listOfData.size()<20 ) {
listOfData.add(d);
}
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()));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.