1. Source des données
InputStream est essentiellement un octet [], l'entrée signifie que les données sont obtenues de l'extérieur vers la mémoire et encapsulées dans l'octet [].
Sous-classes:
FileInputStream consiste à obtenir des données à partir de fichiers (fichiers, données non en mémoire);
ByteArrayInputStream obtient des données de mémoire (données qui existent déjà en mémoire);
éventuellement, un objet de type InputStream est généré.
2. Analyse du code
2.1 Copiez simplement les fichiers
public static void main(String[] args) throws IOException {
InputStream inputStream = new FileInputStream("D:\\DAY_WORK\\2020\\month_10\\10_月.txt");
OutputStream outputStream = new FileOutputStream("D:\\DAY_WORK\\2020\\month_10\\10_copy.txt");
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
outputStream.write(bytes);
inputStream.close();
outputStream.close();
}
2.2 Copier les fichiers par unités de 1024
public static void main(String[] args) throws IOException {
InputStream inputStream = new FileInputStream("D:\\DAY_WORK\\2020\\month_10\\My Favorite 修改说明.docx");
OutputStream outputStream = new FileOutputStream("D:\\DAY_WORK\\2020\\month_10\\My Favorite 修改说明copy.docx");
byte[] bytes = new byte[1024];
int n;
final int end = -1;
while (end != (n = inputStream.read(bytes))) {
outputStream.write(bytes, 0, n);
}
inputStream.close();
outputStream.close();
}
2.3 Ajouter une phrase au contenu du fichier
public static void main(String[] args) throws IOException {
OutputStream outputStream = new FileOutputStream("D:\\DAY_WORK\\2020\\month_10\\10_copy.txt", true);
String content = "\n今天又是 nice 的一天";
byte[] bytes = content.getBytes();
outputStream.write(bytes);
outputStream.close();
}
3. La différence entre outputstream et Writer / FileWriter
L'unité de outPutStream est l'octet; l'unité de
Writer / FileWriter est le caractère, qui a des problèmes d'encodage.