1. java读取本地文件全部字节流
1.首先在本地存放一个文件;
2.接着打开IDEA开始网络编程,分别创建两个类,客户端类和服务器类;
3.接着在客户端类中创建一个本地文件输入流,读取本地文件;同时创建Socket对象,并使用网络字节输出流向服务器发起传输文件的请求;
4.然后在服务器类中创建ServerSocket对象,并使用对象的getInputStream()方法读取从客户端传来的文件;同时创建本地文件输出流,用于写出并将文件存放到服务器的指定位置;
5.服务器端接收并存储文件成功后,服务器类需要向客户端反馈相关信息,因此继续使用Socket类的getOutputStream()方法反馈文件“上传成功”的信息;客户端类使用getInputStream()方法读取服务器反馈的信息,完成一次通信;
6.最后,先启动服务器类,在启动客户端类,查看文件是否上传成功。
2. java字符流读文件
简单的说FileOutputStream、FileInputStream和FileWriter、FileReader是常用的文件输入输出流,其中FileOutputStream、FileInputStream是单字节写入和读取的,即每次读取和写入的单位为一个字节;而FileWriter、FileReader是单字符写入和读取的,即每次读取和写入的单位为一个字符,这个字符可能是一个字节,也可能是2个字节,如汉字,当然还要根据文件的编码格式。
3. Java读取文件流
Scanner sc=new Scanner(new File("abc.txt"));
int c=1;
FileWriter fw =new FileWriter("sf.txt");
while(sc.hasNextLine()){
String s=c+sc.nextLine();
fw.write(s+"\r\n");
fw.flush();
c++;
}
fw.close();
sc.close();
4. java流读取文件中的数据
我们只需要创造一个动态类就可以了,一般情况下给自己的类设置好读取的路径,然后就可以正常的访问到文件中的数据了。
5. java字节流写入文件
三种方式
方式一:使用FileOutputStream,其构造器(如下),如果 append 参数为 true,则将字节写入文件末尾处,相当于追加信息。如果 append 参数为 false, 则覆盖文件。
FileOutputStream(File file, boolean append);FileOutputStream(String name, boolean append);
方式二:使用FileWriter,其构造器也存在append参数,将其设为true即可
FileWriter(File file, boolean append)
方式三:使用RandomAccessFile,该类可以设置指针在文件的任意位置插入数据,也就说不仅仅能在末尾,也能在其他位置进行插入。
skipBytes方法可跳过指定字节的数据
seek方法也拥有skipBytes的功能,但是seek( )在使用过程影响系统的开销
希望我的回答对你有所帮助
6. java按照字节流读取文件
每次读写的字节数不同;
字符流是块读写,字节流是字节读写;
字符流带有缓存,字节流没有。
java流在处理上分为字符流和字节流。字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。
字符流和字节流,一个属性范围小,一个属性范围大,字符流只能是字符这一种类型,但是字节流中可以是字符,可以是二进制文件,可以是音频,可以是各种各样的类型,只要符合字节形式存储的都可以接字节流,而字符流只能接字符。
7. java文件流读取文件
如果你全是中文的话,中文是两个字节,那么可以采用两个字节一起读,如果你中英文交叉的文本,那就不好办了,只能把文本一次性全都读进来再输出。纯中文读取:File f1 = new File ("a.txt"); FileInputStream is=new FileInputStream(f1); int i; byte[] b =new byte[2]; while((i=is.read(b))!=-1){ System.out.print(new String(b)); } 中英文混合的文本读取 byte[] b =new byte[yourtxtlength]; yourtxtlength就是你文本字节的长度
8. java 读取本地文件
首先ftp路径名是可以自己控制的,其次是文件名,在上传的时候尽量通过当前时间+随机数重命名文件名,防止文件名重复,然后把这个文件记下来返回到前台,前台接受到文件名,然后去拼接,就完成了
9. java获取文件字节流
字节流是由字节组成的,
字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
字符流和字节流都是什么
流就是stream. 一个连续的字节队列。
流是程序输入或输出的一个连续的字节序列,设备(例如鼠标,键盘,磁盘,屏幕和打印机)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现---不一定是物理磁盘文件,还可以是对应与某个输入/输出源的逻辑文件
流(streams)在I/O系统中是一种I/O机制和功能,或者称为streams子系统。它本身并不是一个物理设备的概念。
引入流的目的:
传统的字符设备驱动程序框架有许多缺点,这表现在:
。内核与字符设备驱动程序间接口的抽象层次太高
。内核没有为字符设备提供可靠的缓冲区分配和管理功能
。许多系统对字符设备的界面是把数据看成是FIFO(先进先出)的字节流,因此没有识别消息边界,区分普通设备和控制信息,以及判定不同消息优先级的能力,也没有字节流流量控制
。在网络数据传输设备中这些问题更突出。网络中数据传输是基于消息或数据分组的。
流的概念:
用通讯中的术语来说,流是全双工的处理过程,它是内核中驱动程序和用户进程之间的数据传输通道。
从流的构造上来说,它由一个流头,一个流驱动程序尾,以及其间的零个或若干个可选模块构成 。流头是一个用户级接口,它允许用户应用程序通过系统调用接口来访问流。驱动程序尾与底层设备通信。在流的中间的模块是处理数据的。
字节流与字符流主要的区别是他们的的处理对象
字节流是由字节组成的,字符流是由字符组成的. Java里字符由两个字节组成.
字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化。在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public String(byte bytes[], String charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统默认的lang
流式传输主要指将整个音频和视频及三维媒体等多媒体文件经过特定的压缩方式解析成一个个压缩包,由视频服务器向用户计算机顺序或实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备对压缩的A/V、3D等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。
10. java读取本地文件内容
public static void getFileSize(String path){//传入文件路径
File file = new File(path);
//测试此文件是否存在
if(file.exists()){
//如果是文件夹
//这里只检测了文件夹中第一层 如果有需要 可以继续递归检测
if(file.isDirectory()){
int size = 0;
for(File zf : file.listFiles()){
if(zf.isDirectory()) continue;
size += zf.length();
}
System.out.println("文件夹 "+file.getName()+" Size: "+(size/1024f)+"kb");
}else{
System.out.println(file.getName()+" Size: "+(file.length()/1024f)+"kb");
}
//如果文件不存在
}else{
System.out.println("此文件不存在");
}
}
- 相关评论
- 我要评论
-