字节流之向文件中写入字符串并读出字符串

本文通过示例展示了Java中文件输入流(FileInputStream)和文件输出流(FileOutputStream)的基本使用,包括创建文件、写入数据、读取数据以及流的关闭操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、InputStream(输入字节流)

InputStream是一个定义了Java流式字节输入模式的抽象类,该类的所有方法在出错时都会引发一个IOExceptin异常。

          方法                          描述 

      int available()             返回当前可读的输入字节数

      void close()               关闭输入流。关闭之后若再读取则会产生IOException    

     void mark(int numBytes)   再输入流当前带点放置一个标志。

     boolean markSupported()  如果调用的流支持mark()/reset()就返回true

     int read()

     int read(byte buffer[])

     int read(byte buffer[],int offset,int numBytes)

     void reset()

     long skip(long numBytes)


2、OutputStream

     void close()

     void flush()

      void write(int b)

     void write(byte buffer[])

     void write(byte buffer[],int offset,int numBytes)


3、FileInputStream (文件输入流)

     FileInputStream(String filepath)

     FileInputStream(File fileObj)

4、FileOutputStream (文件输入流)

     FileOutputStream(String filePaht)

     FileOutputStream(File fileObj)

     FileOutputStream(String filePath,boolean append)


package IO;

import java.io.*;

public class StreamDemo {
	public static void main(String[] args) {
		//创立一个文件
		File f = new File("E:\\Java\\iodemo.txt"); 
		
		//将数据写入文件中
		OutputStream out = null;
		try {
			out = new FileOutputStream(f);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		String str = "Hello World!!";
		byte b[] = str.getBytes();
		
		try {
			out.write(b);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		try {
			out.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//读文件
		InputStream in = null;
		try {
			in = new FileInputStream(f);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		byte b1[] = new byte[1024];
		int i = 0;
		try {
			i = in.read(b1);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		try {
			in.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
       
		System.out.println(new String(b1,0,i));
	}
}

      








在C语言中,可以使用标准库函数fwrite()来向文件写入字符串。该函数原型如下: size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream); 其中,ptr是指向存储字符串的缓冲区的指针,size是每个数据元素的大小(通常为1),count是要写入的数据元素数量,stream是要写入文件指针。 要将字符串写入文件,首先需要打开要写入文件,可以使用fopen()函数来打开文件,原型如下: FILE *fopen(const char *filename, const char *mode); 其中,filename是要打开的文件名,mode是打开文件的模式,如果文件不存在则创建文件打开,如果文件已经存在则打开文件截断(即清空文件)。 使用fwrite()函数将字符串写入文件示例如下: ``` #include <stdio.h> int main() { const char *str = "Hello, World!"; FILE *file = fopen("output.txt", "w"); if (file != NULL) { fwrite(str, sizeof(char), strlen(str), file); fclose(file); printf("字符串写入文件成功!\n"); } else { printf("打开文件失败!\n"); } return 0; } ``` 在上述示例中,我们定义了一个字符串"Hello, World!",然后使用fopen()函数打开一个文件output.txt,打开模式为"w",表示写入模式。如果文件打开成功,则使用fwrite()函数将字符串写入文件使用fclose()函数关闭文件。最后,打印出字符串写入文件成功的消息。 需要注意的是,如果文件打开失败,会返回一个空指针,因此在写入文件前需要做错误处理。此外,在使用fwrite()函数时,size参数通常为1,因为写入的是字符串,每个数据元素的大小都是1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值