文件的输入输出 part1

/*
 * 
 *
 *  Created on: 2014年9月3日
 */

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{

	/*putc(c,stdout) 与putchar(c)的作用是一样的。
	getc(stdin) 与getchar(c)的作用是一样的。
	可以方便的将stdout或者stdin改为文件指针fp,实现了从文件的读取
	和向文件的输出*/ 
//	int a;
//	a = getc(stdin);
//	putc(a, stdout);
	
	/*--------------------------------*/
	/*创建文件test.txt,"w+"表示文件既可读又可写,如果文件不存在就创建之,
	如果文件已经存在,就清空并重新开始写*/ 
	FILE *fp;	
	fp = fopen("c:\\users\\arvin\\test.txt", "w+");
	/*能否顺利创建文件的测试,exit(0)表示正常退出,exit(非零)表示异常退出。*/
	if(fp == NULL) //必须是fp == NULL, 测试if(fp)似乎有问题啊!! 
	{
		printf("Can not open the file");
		exit(1);
	}
	
	int b;
	b = getchar();
	while (b !='\n')
	{
		putc(b,fp);
		b = getchar();
	}	
	rewind(fp);//文件指针返回第一个字符的位置 
	/*把写入test.txt中的文字打印到标准输出(屏幕)*/
	b = getc(fp);
	while (b != EOF)
	{
		putchar(b);
		b = getc(fp);
	}
	if (fclose(fp) != 0)
	printf("Error in closing files"); //别忘了,要关掉fp的链接。正常情况下fclose(fp)返回0; 
	return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解决这个问题。 首先,我们需要使用`FileInputStream`类来读取D盘根目录下的图片文件,并使用`FileOutputStream`类将其写入E盘根目录下的六个不同的文件中。下面是示例代码: ```java import java.io.*; public class ImageSplitter { public static void main(String[] args) throws IOException { // 指定要读取的图片文件 File inputFile = new File("D:\\image.jpg"); // 指定要写入的六个文件,每个文件大小为原文件的六分之一 File[] outputFiles = new File[6]; for (int i = 0; i < outputFiles.length; i++) { outputFiles[i] = new File("E:\\image_part_" + (i+1) + ".jpg"); } // 创建输入流读取原文件,创建输出流写入分割后的文件 try (InputStream inputStream = new FileInputStream(inputFile); OutputStream[] outputStreams = new OutputStream[6]) { // 将输入流中的数据分割到输出流中 long fileSize = inputFile.length(); long bytesPerFile = fileSize / 6; long remainingBytes = fileSize % 6; for (int i = 0; i < outputStreams.length; i++) { outputStreams[i] = new FileOutputStream(outputFiles[i]); long bytesToWrite = bytesPerFile; if (i == outputStreams.length - 1) { bytesToWrite += remainingBytes; } byte[] buffer = new byte[(int) bytesToWrite]; int bytesRead = inputStream.read(buffer); outputStreams[i].write(buffer, 0, bytesRead); } } } } ``` 在上面的代码中,我们先指定要读取的图片文件和要写入的六个文件,然后使用`FileInputStream`创建输入流读取原文件,使用`FileOutputStream`创建输出流写入分割后的文件。接着,我们根据文件大小计算出每个输出流应该写入的字节数,并使用一个循环将每个输出流中的数据写入到对应的文件中。最后,我们在`try`语句块结束时自动关闭输入输出流。 希望这个示例代码对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值