Trong Java, nếu bạn biết chắc chắn một tệp rất nhỏ, bạn có thể sử dụng phương thức readBytes()
để đọc nội dung trong một lần thay vì đọc từng dòng hoặc sử dụng bộ đệm.Cách đọc nội dung tệp thành một biến trong một lần?
Chỉ cần tự hỏi trong shell script, tôi biết chúng tôi có thể làm điều gì đó như:
while read line
do
echo $line
LINE = $line
done < "test.file"
echo $LINE
Nếu test.file của tôi là như sau:
testline1
testline2
testline3
này chỉ mang lại cho tôi những dòng cuối cùng để $LINE
. $LINE
chứa "testline3".
Câu hỏi của tôi là: Làm cách nào để đọc toàn bộ tệp với nhiều dòng vào một biến duy nhất, vì vậy tôi có thể nhận được $LINE="testline1\ntestline2\ntestline3"
?
'data = $ (cat file)', Nhưng vì sao bạn lại muốn có nó? Chỉ cần đọc tệp bất cứ khi nào bạn cần nội dung! –
Hai điều không liên quan trực tiếp đến câu hỏi của bạn: đầu tiên, 'LINE = $ line' không thực sự hoạt động; khoảng trống xung quanh dấu bằng biểu hiện nó không hợp lệ. Thứ hai, nếu bạn đang thao tác văn bản mà bạn muốn giữ nguyên theo nghĩa đen, bạn nên đặt 'IFS' thành null cho các cuộc gọi đã đọc của bạn (nếu không thì khoảng trống trên mỗi dòng sẽ bị nuked) và chuyển tùy chọn' -r' thành 'read' và tùy chọn '-E' thành' echo' (nếu không, mọi dấu gạch chéo ngược trong tệp của bạn sẽ làm mọi thứ lộn xộn). Xem câu trả lời của tôi dưới đây chẳng hạn. –
@MarkReed: Tôi chưa bao giờ hiểu mục đích của '-E' vì đó là hành vi mặc định của Bash cho' echo'. –