您可以使用以下代码来实现您的需求:
该代码会创建一个 FileInputStream 对象,该对象将从指定的文件路径中读取数据。然后,它会创建一个长度为 1024 的字节数组,并使用 fisread(buf) 方法将文件内容读取到该数组中。最后,它会将读取到的内容输出到控制台,并关闭输入流。
Try again
1。只是获得>
一、超类:
字节流: InputStream(读入流) OutputStream(写出流)
字符流: Reader(字符 读入流) Writer (字符写出流)
二、文件 *** 作流
字节流: FileInputStream ,FileOutputStream
字符流: FileReader, FileWriter(用法与字节流基本相同,不写)
//1指定要读 的文件目录及名称
File file =new File("文件路径");
//2创建文件读入流对象
FileInputStream fis =new FileInputStream(file);
//3定义结束标志,可用字节数组读取
int i =0 ;
while((i = fisread())!=-1){
//i 就是从文件中读取的字节,读完后返回-1
}
//4关闭流
fisclose();
//5处理异常
//1指定要写到的文件目录及名称
File file =new File("文件路径");
//2创建文件读入流对象
FileOutputStream fos =new FileOutputStream(file);
//3定义结束标志
foswrite(要写出的字节或者字节数组);
//4刷新和关闭流
fosflush();
fosclose();
//5处理异常
三、缓冲流:
字节缓冲流: BufferedInputStream,BufferedOutputStream
字符缓冲流:BufferedReader ,BufferedWriter
缓冲流是对流的 *** 作的功能的加强,提高了数据的读写效率。既然缓冲流是对流的功能和读写效率的加强和提高,所以在创建缓冲流的对象时应该要传入要加强的流对象。
//1指定要读 的文件目录及名称
File file =new File("文件路径");
//2创建文件读入流对象
FileInputStream fis =new FileInputStream(file);
//3创建缓冲流对象加强fis功能
BufferedInputStream bis =new BufferedInputStream(fis);
//4定义结束标志,可用字节数组读取
int i =0 ;
while((i = bisread())!=-1){
//i 就是从文件中读取的字节,读完后返回-1
}
//5关闭流
bisclose();
//6处理异常
//1指定要写到的文件目录及名称
File file =new File("文件路径");
//2创建文件读入流对象
FileOutputStream fos =new FileOutputStream(file);
//3创建缓冲流对象加强fos功能
BufferedOutputStream bos=new BufferedOutputStream(fos);
//4向流中写入数据
boswrite(要写出的字节或者字节数组);
//5刷新和关闭流
bosflush();
bosclose();
//6处理异常
四、对象流
ObjectInputStream ,ObjectOutputStream
不同于以上两种类型的流这里只能用字节对对象进行 *** 作原因可以看上篇的编码表比照原理
ObjectOutputStream对象的序列化:
将java程序中的对象写到本地磁盘里用ObjectOutputStream
eg:将Person类的对象序列化到磁盘
创建Person类
注1:此类要实现Serializable接口,此接口为标志性接口
注2:此类要有无参的构造函数
注3:一旦序列化此类不能再修改
class Person implements Serializable{
public Person(){}
}
2创建对象流对象
注:要增强功能可以将传入文件缓冲流
ObjectOutputStream oos =new ObjectOutputStream(
new FileOutputStream(new File("文件路径")));
3写入对象 ,一般会将对象用集合存储起来然后直接将集合写入文件
List<Person> list =new ArrayList<>();
listadd(new Person());
(可以添加多个)
ooswriteObject(list);
4关闭流,处理异常
oosflush();
oosclose();
五、转换流:
这类流是用于将字符转换为字节输入输出,用于 *** 作字符文件,属于字符流的子类,所以后缀为reader,writer;前缀inputstream,outputstream;
注 :要传入字节流作为参赛
InputStreamReader: 字符转换输出流
OutputStreamWriter:字符转换输入流
//1获取键盘输入的字节流对象
inInputStream in =Streamin;
/2用转换流将字节流对象转换为字符流对象,方便调用字符缓冲流的readeLine()方法/
InputStreamReader isr =new InputStreamReader(in);
/5创建字符转换输出流对象osw,方便把输入的字符流转换为字节输出到本地文件。/
OutputStreamWriter osw =new OutputStreamWriter(new
FileOutputStream(new File("文件名")));
/3现在isr是字符流,可以作为参数传入字符缓冲流中/
BufferedReader br =new BufferedReader(isr);
/4可以调用字符缓冲流br的readLine()方法度一行输入文本/
String line =null;
while((line =brreadLine()){
oswwrite(line);//osw是字符流对象,可以直接 *** 作字符串
}
注:InputStreamReader isr =new InputStreamReader(new "各种类型的字节输入流都行即是:后缀为InputStream就行");
OutputStreamWriter osw =new OutputStreamWriter(new
"后缀为OutputStream就行");
六、区别记忆
1对象流是可以读写几乎所有类型的只要是对象就行,而字节字符流,只能读写单个字节字符或者字节字符数组,以上没有读写字节字符数组的;注意对象流只有字节流!
2字符和字节循环读入的结束条件int i=0; (i =fisread())!=-1
用字符数组复制文件(fr 读入流 ,fw写出流),字节流也是相同的用法
int i = 0; char[] c = new char[1024];
while((i = frreade()) !=-1)){
fwwrite(c,0,i);
}
123456
3对象流里面套缓冲流的情景:
new ObjectInputStream(new BufferedInputStream(new FileInputStream(new File(“文件路径”))));
4记忆流及其功能的方法:
前缀表示功能,后缀表示流的类型;
比如说FileInputStream 前缀:File,表示 *** 作的磁盘,后缀:intputstream,表示是字节输入流。
同理 FileReader:表示 *** 作文件的字符流
ObjectInputStream : *** 作对象的字节输入流
5拓展:获取键盘输入的字符的缓冲流的写法:
new BufferedReader(new InputStreamReader(Systemin)));
将字节以字符形式输出到控制台的字符缓冲流的写法:
new BufferedWriter( new OutputStreamWriter(Systemout))
读文件:
1、通过File获取文件
2、打开输入流,读取文件
写文件:
1、创建文件
2、打开输出流,写入文件内容
示例:
读文件:String content = ""; //文件内容字符串
//通过路径/sdcard/footxt打开文件
File file = new File("/sdcard/footxt");
try {
InputStream instream = new FileInputStream(file);//读取输入流
InputStreamReader inputreader = new InputStreamReader(instream);//设置流读取方式
BufferedReader buffreader = new BufferedReader(inputreader);
while (( line = buffreaderreadLine()) != null) {
content += line + "\n";//读取的文件内容
}
}catch(Exception ex){
}写文件:
File file = new File("/sdcard/footxt");//
if(!fileexists())
filecreateNewFile();//如果文件不存在,创建footxt
try {
OutputStream outstream = new FileOutputStream(file);//设置输出流
OutputStreamWriter out = new OutputStreamWriter(outstream);//设置内容输出方式
outwrite("文字内容");//输出内容到文件中
outclose();
} catch (javaioIOException e) {
eprintStackTrace();
}
dim filename as string = "文件名" Using myfilestream As New FileStream(FileName, FileModeOpen, FileAccessRead)
Dim data() As Byte
ReDim data(myfilestreamLength - 1)
myfilestreamRead(data, 0, myfilestreamLength)
myfilestreamClose()
' data是你要的结果,为byte(), End Using
js不能用于 *** 作文件,但是可以通过JS调用PHP等程序对文件流进行 *** 作,我这里只涉及前端调用(JQ AJAX,注意要引用JQ类库,并且AJAX必须在服务端才能运行,也就是你必须搭建服务器),至于你文档 *** 作的程序这个得自行搞定了。
<!DOCTYPE HTML>
<html>
<head>
<meta >
FileInputStream file=new FileInputStream(//这里写文件路径和名字);
BufferedReader reader=new BufferedReader(new InputStreamReader(file));//这里得到流
while((String b=readerreaderLine())!=null){//这里都文件一行一行的都
systemoutpriteln(b);//输出到控制台
}
求采纳 纯手打
可以通过BufferedReader 流的形式进行流读取,之后通过readLine方法获取到流每行的内容。
BufferedReader bre = null;
try {
String file = "D:/test/testtxt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = brereadLine())!= null) // 判断最后一行不存在,为空结束循环
{
Systemoutprintln(str);//原样输出读到的内容
};
备注: 上面的bre就是提问者需要的流。流用完之后必须close掉,如上面的就应该是:breclose(),否则bre流会一直存在,直到程序运行结束。
以上就是关于编JAVA程序获取指定D盘下file.txt内容要求创建一个fis字节输入流对象一个buf字节组长度定义为1024整数倍全部的内容,包括:编JAVA程序获取指定D盘下file.txt内容要求创建一个fis字节输入流对象一个buf字节组长度定义为1024整数倍、asp获取http数据流并解析、java的几种IO流读取文件方式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)