ν°μ€ν 리 λ·°
νμΌμ μ½κ±°λ μ°λ λ°©μμλ ν¬κ² λκ°μ§κ° μλ€. νλλ λ²νΌλ₯Ό μ΄μ©νλ λ°©μμ΄κ³ , λ€λ₯Έ νλλ μ€νΈλ¦Όμ μ΄μ©νλ λ°©μμ΄λ€. λ²νΌλ§κ³Ό μ€νΈλ¦¬λ°μ΄λΌλ λ¨μ΄λ₯Ό μΌμμνμμ λ§μ΄ λ€μ΄λ΄€μ κ²μ΄λ€. λ³΄ν΅ μμμ μμ²ν λ λ§μ΄ λ³Ό μ μλ μ©μ΄λ€μ΄λ€. μμμ λ‘λ©ν λ λ²νΌλ§μ νλ€κ³ νκ³ , μμμ μ€μκ°μΌλ‘ μ‘μΆν λλ μ€νΈλ¦¬λ°νλ€κ³ νλ€.
λ²νΌλ§μ μμμ μ¬μν μ μμ λκΉμ§ λ°μ΄ν°λ₯Ό λͺ¨μΌλ λμμ΄κ³ , μ€νΈλ¦¬λ°μ λ°©μ‘μΈμ μ»΄ν¨ν°μμ μμ²μμ μ»΄ν¨ν°λ‘ μμ λ°μ΄ν°λ₯Ό μ‘°κΈμ© μ μ‘νλ κ²μ΄λ€. μ€νΈλ¦¬λ°μ νλ κ³Όμ μμ λ²νΌλ§μ ν μλ μλ€. μ μ‘μ΄ λ무 λ리면 νλ©΄μ λ΄λ³΄λ΄κΈ°κΉμ§ μ΅μνμ λ°μ΄ν°λ₯Ό λͺ¨μμΌ νκ³ , μμ λ°μ΄ν°κ° μ¬μ μλλ³΄λ€ λΉ λ₯΄κ² μ μ‘λμ΄λ 미리 μ μ‘λ°μ λ°μ΄ν°λ₯Ό μ μ₯ν 곡κ°μ΄ νμνκΈ° λλ¬Έμ΄λ€.
λ Έλμ λ²νΌμ μ€νΈλ¦Όλ λΉμ·ν κ°λ μ΄λ€. νμΌμ μ½μΌλ©΄ λ²νΌνμμΌλ‘ μΆλ ₯νλ€. λ Έλλ νμΌμ μ½μ λ λ©λͺ¨λ¦¬μ νμΌ ν¬κΈ°λ§νΌ 곡κ°μ λ§λ ¨ν΄λλ©° νμΌ λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μ μ μ₯ν λ€ μ¬μ©μκ° μ‘°μν μ μλλ‘νλλ° μ΄λ λ©λͺ¨λ¦¬μ μ μ₯λ λ°μ΄ν°κ° λ°λ‘ λ²νΌλ€.
- λ²νΌλ? μ©λμ΄ ν° λ°μ΄ν°λ₯Ό μ μ‘ν λ ν λ²μ μ μ‘μ νμ§ λͺ»νλκΉ νΉμ λ¨μ λ§νΌ λ¬Άμ΄μ μ μ‘μ νλ€. κ·Έλ BUFFERμ ν¬κΈ°λ§νΌ BUFFERμ λ΄μμ μ μ‘νλ€. μ μ‘ μλ μ°¨μ΄μ λν μ±λ₯μ 보μνκΈ° μν΄ μ¬μ©, μ λ ₯ μλμ λΉν΄ μΆλ ₯μλκ° λλ¦°κ²½μ° λ°μ΄ν°λ₯Ό μμ μ μ₯νλ 곡κ°.
- μ€νΈλ¦Όμ΄λ? λ€ μ°¬ λ²νΌλ₯Ό μ μ‘νλ κ²μ΄λ€. λ°μ΄ν°λ€μ΄ μμ§μΌ μ μλλ‘ μ€κ° λ€λ¦¬ μν .
μλ₯Ό λ€μ΄ μ¬μ©μλ 1μ΄μ 100κ°μ λ°μ΄ν°, νλ‘κ·Έλ¨μ 1μ΄μ 5κ°μ λ°μ΄ν°λ₯Ό μ²λ¦¬ν μ μλ€κ³ κ°μ μ ν΄λ³΄μ. νλ‘κ·Έλ¨ μ²λ¦¬λ₯Ό μ§ννλ λμ μ λ ₯μ₯μΉλ₯Ό ν΅ν΄ λ€μ΄μ€λ λ°μ΄ν°λ λκΈ°λ₯Ό ν΄μΌνλ μν©μ΄ λλ€. μ΄λ¬ν μν©μ λ°©μ§νκΈ° μν΄ μ λ ₯λ°μ λ°μ΄ν°λ₯Ό λ²νΌλΌλ μμ곡κ°μ μ μ₯ν΄λκ³ νλ‘κ·Έλ¨μμ μ²λ¦¬ν μ μλ μν©μ΄λκ±°λ λ²νΌκ° κ½μ°¨κ² λλ©΄ λ²νΌμ μ μ₯λ λ°μ΄ν°λ₯Ό ν λ²μ μ μ‘μ νλ€.
μ΄λ°μμΌλ‘ λ²νΌλ₯Ό μ¬μ©νκ² λλ©΄ API νΈμΆνμλ₯Ό μ€μ¬ μ μΆλ ₯ μ±λ₯μ κ°μ νκ² λλ€. μ΄λ κ² λ³΄λ©΄ μ€νΈλ¦Όκ³Ό λ²νΌλ νμ κ°μ΄ λ¬Άμ¬ λ€λλκ²μ΄ μ’μ κ²κ°μ§λ§ λΉ λ₯Έ λ°μμ΄ μꡬλλ κ²μκ³Ό κ°μ νλ‘κ·Έλ¨ κ°μ κ²½μ°λ μ λ ₯μ΄ μ΄λ€μ§λ μ¦μ μ μ‘μ΄ μ΄λ£¨μ΄μ Έ λΉ λ₯Έ λ°μ μλλ₯Ό 보μ¬μ€μΌνκΈ° λλ¬Έμ λ²νΌλ₯Ό μ¬μ©νλ κ²μ΄ μ’μ§ μλ€.
μΆμ² μλ£
tcpschool.com/cpp/cpp_io_streamBuffer
νμΌ μ½κ³ μ°κΈ°μ κ΄λ ¨λ λ¬Έμ
νμΌμ μ½μ΄ 1MB λ¨μλ‘ λΆν νμ¬ μ μ₯νλ νλ‘κ·Έλ¨μ μμ±
const fs = require("fs");
//let data = [];
const LIMIT = 1024*1024;
let read_size = 0;
let count = 1;
let write_stream = fs.createWriteStream('test.txt.' + count);
//λ°μ΄ν°λ₯Ό μ½μ΄λ€μΌ μ μλ μ€νΈλ¦Ό μμ±
const read_stream = fs.createReadStream('./test2.jpg');
read_stream.on('data', function(chunk) {
read_size += chunk.length;
if (read_size >= LIMIT * count) {
const now_data = chunk.slice(0, LIMIT - (read_size - chunk.length));
const next_data = chunk.slice(LIMIT - (read_size - chunk.length));
write_stream.write(now_data);
write_stream.end();
count++;
write_stream = fs.createWriteStream('test.txt.' + count);
write_stream.write(next_data);
} else {
write_stream.write(chunk);
}
});
read_stream.on('open', function(chunk) {
console.log('open');
});
read_stream.on('close', function() {
write_stream.end();
console.log('close file');
});
read_stream.on('error', function(err) {
console.log('error', err);
});
λΆν λ νμΌμ μ°μμΌλ‘ μ΄μ΄λΆμ΄λ νλ‘κ·Έλ¨μ μμ± (νμΌ λ¦¬μ€νΈλ μκ³ μλ€κ³ κ°μ νλ€.)
const fs = require("fs");
const files = ['test.txt.1', 'test.txt.2'];
let write_stream = fs.createWriteStream('test222.jpg');
function readAndWrite(idx) {
if (idx >= files.length) {
write_stream.end();
console.log("end");
return;
}
const file_path = files[idx];
//λ°μ΄ν°λ₯Ό μ½μ΄λ€μΌ μ μλ μ€νΈλ¦Ό μμ±
const read_stream = fs.createReadStream(file_path);
read_stream.on('data', function(chunk) {
write_stream.write(chunk);
});
read_stream.on('open', function(chunk) {
console.log('open');
});
read_stream.on('close', function() {
console.log('close file');
readAndWrite(idx + 1);
});
read_stream.on('error', function(err) {
console.log('error', err);
});
}
readAndWrite(0);
'Node.js' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Node.js] IntelliJμ Node.js νκ²½ μ€μ νκΈ° (0) | 2021.04.08 |
---|
- Total
- Today
- Yesterday
- μκ³ λ¦¬μ¦
- λ³λͺ μ²λ¦¬
- μλ£κ΅¬μ‘°
- κ²μν μ‘°ν
- μ€νλ§λΆνΈ μλμμ±
- μλ°
- κ°λ°ν경ꡬμΆ
- κ²μλ¬Όμ‘°ν
- κ²μνλ§λ€κΈ°
- tomcatμ€μΉ
- μ¨λ¦¬μμ€
- κ°λ°
- μ 체κ²μλ¬Ό μ‘°ν
- java jdk μ€μΉ
- typeAliases
- κ²μλ¬Ό μμ
- mysqlμ€μΉ
- java νκ²½λ³μ
- κ²μν μμ
- Java
- λΆνΈ μλμμ±
- μ΄ν΄λ¦½μ€ μ€μΉ
- μ΄ν΄λ¦½μ€ νκΈ μΈμ½λ©
- Algorithm
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |