一次从 java 中的文件中读取 x 个字节
Reading x bytes at a time from a file in java
我想一次从一个文件中读取 x
个字节(比如 "testFile.raw"),然后将这些字节输出到另一个文件。
例如:
read 20 bytes from testFile.raw -> dump into outputfile.jpg
...repeat until done...
这可能吗?
喜欢我的作品就点个赞吧
public class ImageTest {
public static void main(String[] args) {
try {
byte[] imageInByte;
BufferedImage originalImage = ImageIO.read(new File(
"c:/imagename.jpg"));
// convert BufferedImage to byte array
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(originalImage, "jpg", baos);
baos.flush();
imageInByte = baos.toByteArray();
baos.close();
// convert byte array back to BufferedImage
InputStream in = new ByteArrayInputStream(imageInByte);
BufferedImage bImageFromConvert = ImageIO.read(in);
ImageIO.write(bImageFromConvert, "jpg", new File(
"c:/imagename.jpg"));
} catch (IOException e) {
System.out.println(e.getMessage());
}
}}
这是一个使用大小为 20 的字节数组的示例:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class FileInputOutputExample {
public static void main(String[] args) throws Exception {
try{
byte[] b = new byte[20];
InputStream is = new FileInputStream("in.txt");
OutputStream os = new FileOutputStream("out.txt");
int readBytes = 0;
while ((readBytes = is.read(b)) != -1) {
os.write(b, 0, readBytes);
}
is.close();
os.close();
}catch(IOException ioe){
System.out.println("Error "+ioe.getMessage());
}
}
}
我想一次从一个文件中读取 x
个字节(比如 "testFile.raw"),然后将这些字节输出到另一个文件。
例如:
read 20 bytes from testFile.raw -> dump into outputfile.jpg
...repeat until done...
这可能吗?
喜欢我的作品就点个赞吧
public class ImageTest {
public static void main(String[] args) {
try {
byte[] imageInByte;
BufferedImage originalImage = ImageIO.read(new File(
"c:/imagename.jpg"));
// convert BufferedImage to byte array
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(originalImage, "jpg", baos);
baos.flush();
imageInByte = baos.toByteArray();
baos.close();
// convert byte array back to BufferedImage
InputStream in = new ByteArrayInputStream(imageInByte);
BufferedImage bImageFromConvert = ImageIO.read(in);
ImageIO.write(bImageFromConvert, "jpg", new File(
"c:/imagename.jpg"));
} catch (IOException e) {
System.out.println(e.getMessage());
}
}}
这是一个使用大小为 20 的字节数组的示例:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class FileInputOutputExample {
public static void main(String[] args) throws Exception {
try{
byte[] b = new byte[20];
InputStream is = new FileInputStream("in.txt");
OutputStream os = new FileOutputStream("out.txt");
int readBytes = 0;
while ((readBytes = is.read(b)) != -1) {
os.write(b, 0, readBytes);
}
is.close();
os.close();
}catch(IOException ioe){
System.out.println("Error "+ioe.getMessage());
}
}
}