java文件流相关知识
-
Java 文件流操作.一、概念 在Java中,文件的输入和输出是通过流(Stream)来实现的。一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是 Internet 上的某个 URL。对于流而言,我们不用关心数据是如何传输的,只需要向源端输入数据,从目的端获取数据即可。 流按照处理数据的单位,可以分为字节流和字符流。字节流的处理单位是字节,通常用来处理二进制文件,例如音乐、图片文件等。而字符流的处理单位是字符,因为Java采用Unicode编码,Java字符流处理的即为Unicode字符,所以在操作汉字、国际化等方面,字符流具有优势。回到顶部二、字节流 所有的字节流类都继承自InputStream 和 OutputStream 这两个抽象类,下面列举了5个输入字节流类,输出字节流类和输入字节流类存在对应关系,这个就不一一列举了。FileInputStream:把一个文件作为输入源,从本地文件系统中读取数据字节,实现对
-
Java 字符流文件读写作者:YangAM 原文链接上篇文章,我们介绍了 Java 的文件字节流框架中的相关内容,而我们本篇文章将着重于文件字符流的相关内容。首先需要明确一点的是,字节流处理文件的时候是基于字节的,而字符流处理文件则是基于一个个字符为基本单元的。但实际上,字符流操作的本质就是「字节流操作」+「编码」两个过程的封装,你想是不是,无论你是写一个字符到文件,你需要将字符编码成二进制,然后以字节为基本单位写入文件,或是你读一个字符到内存,你需要以字节为基本单位读出,然后转码成字符。理解这一点很重要,这将决定你对字符流整体上的理解是怎样的,下面我们一起看看相关 API 的设计。基类 Reader/Writer在正式学习字符流基类之前,我们需要知道 Java 中是如何表示一个字符的。首先,Java 中的默认字符编码为:UTF-8,而我们知道 UTF-8 编码的字符使用 1 到 4 个字节进行存储,越常用的字符使用越少的字节数。而 char 类型被定义为两个字节大小,也就是说,对于通常的字符来说
-
Java 流(Stream)、文件(File)和IO比较Java.io包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。Java.io包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。Java为I/O提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。但本文讲述最基本的和流与I/O相关的功能。我们将通过一个个例子来学习这些功能。读取控制台输入Java的控制台输入由System.in完成。为了获得一个绑定到控制台的字符流,你可以把System.in包装在一个BufferedReader 对象中来创建一个字符流。下面是创建BufferedReader的基本语法:BufferedReader br = new BufferedReader(new
-
Java字节流实现文件夹的拷贝import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; /** java字节流实现文件夹的拷贝 拷贝文件夹,其中文件夹中又有多个文件 1.先遍历这个文件夹,判断是否是目录 2.创建文件夹 3.拷贝文件到新的地方 */ public class FileDirectoryCopyDemo { //遍历文件夹 public static void copy(File srcDir,File destDir){ //遍历srcDir文件夹
java文件流相关课程
java文件流相关教程
- Java 输入输出流 本小节将会介绍基本输入输出的 Java 标准类,通过本小节的学习,你将了解到什么是输入和输入,什么是流;输入输出流的应用场景,File类的使用,什么是文件,Java 提供的输入输出流相关 API 等内容。
- Java 流式操作 流式操作,是 Java 8 除了Lambda表达式外的又一重大改变。学习流式操作,就是学习java.util.stream包下的API,我们称之为Stream API,它把真正的函数式编程引入到了 Java 中。本小节我们将了解到什么是Stream,为什么使用Stream API, 流式操作的执行流程,如何实例化Stream,Stream的中间操作、Stream的终止操作等内容。
- 2. Java 字节流结构 Java 的 java.io.* 包中包含了 InputStream 和 OutputStream 两个类,是 Java 字节流 I/O 的基础类,其他具体的 Java I/O 字节流功能类都派生自这两个类。图中只列出了我们 Socket 编程中常用的 I/O 字节流类。java.net.SocketInputStream 类是 Socket 的输入流实现类,它继承了 java.io.FileInputStream 类。java.net.SocketOutputStream 类是 Socket 的输出流实现类,它继承了 java.io.FileOutputStream 类,下来我们逐一介绍这些类的基本功能。
- 3.2 Java 文件编写 以上代码主要实现了两个 Button 及一个 ScrollView,可以看到 ScrollView 中只有一个 LinearLayout,而 LinearLayout 中只有两个 Button,所以我们需要在 Java 代码中动态添加 Button,这里也可以让大家熟悉一下如何动态创建并添加 Button。接下来在 Java 代码中主要做两件事:为两个 Button 设置点击事件,分别实现回到顶部及跳转到底部;往 ScrollView 中添加 View,并绑定点击事件。代码如下:package com.emercy.myapplication;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.ScrollView;import android.widget.Toast;public class MainActivity extends Activity implements View.OnClickListener { public static final int BUTTON_COUNT = 10; private ScrollView mScrollView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.bt_to_top).setOnClickListener(this); findViewById(R.id.bt_to_bottom).setOnClickListener(this); mScrollView = findViewById(R.id.scrollView); LinearLayout layout = findViewById(R.id.button_group); for (int i = 0; i < BUTTON_COUNT; i++) { Button button = new Button(this); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.topMargin = 100; layout.addView(button, params); button.setOnClickListener(this); button.setText(i + ""); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bt_to_top: mScrollView.fullScroll(ScrollView.FOCUS_UP); break; case R.id.bt_to_bottom: mScrollView.fullScroll(ScrollView.FOCUS_DOWN); break; default: Toast.makeText(this, "当前点击的是第" + ((Button) v).getText() + "个Button", Toast.LENGTH_SHORT).show(); break; } }}效果如下:我们在代码中通过 for 循环往 ScrollView 中添加了 10 个 Button,动态添加一个 View 主要有以下 4 步:通过构造器创建 View。设置其属性(宽、高、margin、padding 等)。设置响应事件(比如点击、触摸、滚动等)。添加到相应的 ViewGroup 中。我们在创建 Button 的同时通过setText及setOnClickListener设置了文本及点击事件,然后在点击的时候展示当前 Button 的序号。
- DOM 事件流 DOM 事件流描述了 DOM 时间响应的阶段、路径。DOM 事件流也会被称为 DOM 事件模型。
- 3.1 文件输出 通过调用openFileOutput()来获取一个文件输出流,然后将数据写入输出流从而最终保存到对应的文件中。在第 2 小节提到过,openFileOutput()有一个 mode 参数,它可以设置成MODE_PRIVATE:私有文件,仅支持当前 App 访问MODE_WORLD_READABLE:除了当前 App,仅支持可读权限MODE_WORLD_WRITEABLE:其他 App 可写MODE_APPEND:文件内容追加,默认是会覆盖该方法返回一个文件输出流实例,之后便可以通过输入流实例来向文件写数据了,代码示例如下:FileOutputStream out = openFileOutput("file name here",MODE_WORLD_READABLE);String str = "data";out.write(str.getBytes());out.close();
java文件流相关搜索
-
j2ee
j2ee是什么
jar格式
java
java api
java applet
java c
java jdk
java list
java map
java script
java se
java socket
java swing
java switch
java web
java xml
java 程序设计
java 多线程
java 环境变量