java 图片io流_关于JavaIO流的图片读取
时间: 2023-09-16 08:14:30 浏览: 82
好的,关于JavaIO流的图片读取,一般有两种方式:
1. 使用FileInputStream和FileOutputStream
```java
FileInputStream fis = new FileInputStream("input.jpg");
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
FileOutputStream fos = new FileOutputStream("output.jpg");
fos.write(buffer);
fos.close();
```
2. 使用ImageIO
```java
BufferedImage image = ImageIO.read(new File("input.jpg"));
ImageIO.write(image, "jpg", new File("output.jpg"));
```
在第一种方式中,首先使用FileInputStream读取图片文件,然后将读取的数据写入到byte数组中,最后使用FileOutputStream将byte数组写入到目标文件中。
在第二种方式中,使用ImageIO读取图片文件,然后将读取到的BufferedImage对象直接使用ImageIO写入到目标文件中。
需要注意的是,在使用ImageIO读取图片时,需要确保图片格式和ImageIO支持的格式一致,否则会抛出异常。
相关问题
java中io流读取文件乱码
在Java中,当使用IO流读取文件时,可能会遇到中文乱码的问题。这种情况通常发生在文件的编码与读取时使用的编码不一致时。常见的IO流中文乱码场景包括使用FileInputStream和FileWriter读取文件时。解决这个问题的方法是在读取文件时指定正确的编码。例如,可以使用InputStreamReader来读取文件,并指定正确的编码,如"utf-8"。这样就可以避免中文乱码的问题了。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* *2* [Java IO流使用过程中乱码问题总结](https://blog.csdn.net/weixin_43737547/article/details/115258656)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [java利用io流读取文件发生了乱码以及java解析vcf文件](https://blog.csdn.net/weixin_46544385/article/details/123365126)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
java中io流读取写入文件
在Java中,可以使用IO流进行文件的读取和写入。下面是一个简单的示例:
1. 文件读取
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
File file = new File("file.txt");
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
2. 文件写入
```java
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class WriteFileExample {
public static void main(String[] args) {
String content = "Hello, world!";
File file = new File("file.txt");
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
bw.write(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上示例中,我们使用了`BufferedReader`和`BufferedWriter`来进行文件的读取和写入。在创建这些对象时,我们需要传入一个`FileReader`或`FileWriter`对象,用于指定要操作的文件。
当然,还有其他的IO流可以用于文件的读写,例如`InputStream`和`OutputStream`等。具体使用哪种流取决于你的需求。