R语言 一种功能强大的数据分析、统计建模 可视化 免费、开源且跨平台 的编程语言

在这里插入图片描述

R语言是一种广泛应用于数据分析、统计建模和可视化的编程语言。它由新西兰奥克兰大学的罗斯·伊哈卡和罗伯特·杰特曼开发,并于1993年首次发布。R语言是一个免费、开源且跨平台的语言,它在统计学和数据科学领域得到了广泛的应用。

R语言具有丰富的数据处理、统计分析和图形可视化功能。它提供了大量的内置函数和扩展包,用户可以使用这些工具进行数据清洗、转换、整合和分析。R语言支持多种统计方法,如回归分析、方差分析、时间序列分析等,同时还提供了机器学习和深度学习的扩展包,使得用户能够进行复杂的模型建立和预测。

R语言的语法简洁灵活,易于学习和使用。它采用向量化操作和函数式编程的思想,使得对数据的处理更加高效和方便。同时,R语言拥有强大的图形绘制功能,用户可以生成高质量的图表、散点图、直方图等,以便更好地理解和展示数据。
在这里插入图片描述

R语言还有一个强大的社区支持,用户可以通过R包管理器CRAN安装和使用成千上万的开源扩展包。这些扩展包涵盖了各种领域的应用,包括金融、医学、社会科学、生物学等,为用户提供了丰富的工具和函数库。

R语言是一种功能强大、灵活多样的数据分析和统计建模语言,广泛用于学术界、工业界和数据科学领域。它被广大用户称为数据科学家的利器,为数据处理、分析和可视化提供了全面的解决方案。

R 语言特点

R 语言环境软件属于 GNU 开源软件,兼容性好、使用免费语法十分有利于复杂的数学运算
数据类型丰富,包括向量、矩阵、因子、数据集等常用数据结构 代码风格好,可读性强

虽然R主要用于统计分析或者开发统计相关的软件,但也有人用作矩阵计算。其分析速度可媲美专用于矩阵计算的自由软件 GNU Octave 和商业软件 MATLAB。
在这里插入图片描述

R语言和matlab对比

R语言和MATLAB都是在科学和数据分析领域中常用的编程语言。它们都具有强大的统计分析和数据可视化功能,但在一些方面存在一些不同。

R语言是一个开源的、免费的统计分析和图形化编程语言。它具有丰富的统计库和包,可以进行各种数据处理、统计模型建立和可视化分析。R语言适用于各种统计数据分析、学术研究和数据挖掘任务。它的语法比较灵活,可以进行高级统计模型的建立和应用。

MATLAB是一种商业化的数值计算和科学编程语言。它适用于各种科学计算、信号处理、图像处理和控制系统设计等领域。MATLAB具有丰富的数值计算工具箱和函数库,可以方便地进行矩阵运算、优化算法、信号处理和数据可视化等操作。MATLAB也具有友好的用户界面和交互式开发环境。

在选择R语言还是MATLAB时,需要根据具体的应用场景和个人需求来进行权衡。如果对统计分析和学术研究更为关注,且预算有限,R语言可能是更好的选择。而如果需要进行数值计算、信号处理或需要与其他工程软件集成,MATLAB可能更适合。此外,R语言具有强大的社区支持和开源生态系统,而MATLAB则提供了一些商业化的工具和技术支持。

R语言和MATLAB都是在科学和数据分析领域中常见的编程语言,各有各的特点和适用场景。选择哪种语言取决于具体的需求和个人偏好。

R语言和Matlab都是科学计算领域常用的编程语言,但它们各自有其优点和局限性。
在这里插入图片描述

R语言:

优点:

  1. R语言是一种免费的开源软件,可以方便地下载和使用。
  2. R语言拥有强大的数据分析和可视化功能,可以处理各种类型的数据。
  3. R语言拥有大量的统计分析和机器学习库,可以进行数据挖掘、预测和建模的工作。
  4. R语言对于数据框操作和处理非常方便,适合对数据进行数据清洗、处理和分析。

局限性:

  1. R语言的速度相对较慢,当数据量很大时,处理速度可能会比较缓慢。
  2. R语言的语法较为复杂,对于初学者而言,学习曲线相对较高。
  3. R语言的图形界面相对较差,需要使用类似Rstudio等第三方工具提高用户交互体验。

Matlab:

优点:

  1. Matlab对数学计算和矩阵操作有很好的支持。
  2. Matlab有很多工具箱,涵盖了广泛的科学计算领域,包括控制系统设计、信号处理、图像处理、优化问题等。
  3. Matlab的程序语法相对简单,易于学习和使用。
  4. Matlab拥有丰富的可视化工具,可以制作出非常专业的图表和图像。

局限性:

  1. Matlab是商业软件,需要购买授权才能使用。
  2. Matlab对于大规模数据处理较为局限,当数据量很大时,可能需要扩展到并行计算等高性能计算方法。
  3. Matlab的类和面向对象编程功能相对较弱。

总结起来,选择R语言还是MATLAB取决于以下几个方面:

  1. 学习曲线:R语言适合有编程经验或对编程熟悉的用户,MATLAB更容易上手。
  2. 功能和扩展性:R语言专注于统计分析和数据科学,具有丰富的统计库和社区贡献;MATLAB提供更广泛的工具箱和商业化支持。
  3. 生态系统和资源:R语言拥有庞大的开源社区和丰富资源,MATLAB资源相对较少。
  4. 可移植性:R语言可在多个操作系统上运行,MATLAB仅限于Windows、macOS和Linux。
  5. 数据规模:R语言能处理大量数据,但需优化以提高性能;MATLAB适合处理大型数据集和高级分析,并提供分布式计算工具箱。
  6. 具体应用场景:R语言适合统计分析和数据科学,MATLAB适合数值计算和科学计算,金融分析和数据可视化两者都可满足,但R语言更适合大规模数据分析,MATLAB更适合创建出色图表和交互式可视化应用。

最后,还需考虑课程或学校要求、个人熟悉程度和成本等因素。了解两种工具的优缺点,有助于更好地做出选择。

R语言的应用场景

R语言是一种功能强大的统计计算和数据分析编程语言,广泛应用于各个领域。以下列举了几个常见的领域及其应用:

  1. 数据科学:R语言在数据分析、数据可视化、机器学习和人工智能等方面表现出色。它提供了丰富的统计和机器学习库,例如ggplot2、dplyr、caret和tensorflow等,可以用于数据探索、建模和预测。

  2. 金融和投资:R语言在金融学和投资领域广泛应用。它可以进行资产定价、风险管理、投资组合优化和量化交易等分析任务。许多金融机构使用R语言来进行市场分析和决策支持。

  3. 生物医学:R语言在生物医学研究中扮演着重要角色。它可以处理大规模的基因组数据、生物图像数据以及临床试验数据,用于生物信息学、基因表达分析、疾病预测和生物统计等方面的研究工作。

  4. 社会科学:R语言在社会科学研究中被广泛应用,包括经济学、政治学、社会学和心理学等领域。它可以用于数据收集、数据清洗、统计分析和可视化,帮助研究人员从数据中发现模式和趋势。

  5. 教育和学术研究:R语言在教育和学术研究中也得到了广泛应用。它可以用于课程教学、数据分析、实验设计和科学研究等方面。许多大学和研究机构都在教学和研究中采用R语言。

代码示例

展示R语言在数据分析和可视化方面的应用:

# 导入数据集
data <- read.csv("data.csv")# 数据摘要
summary(data)# 数据可视化-散点图
plot(data$X, data$Y, main = "Scatter Plot", xlab = "X", ylab = "Y")# 数据可视化-柱状图
barplot(table(data$Category), main = "Bar Chart", xlab = "Category", ylab = "Count")# 回归分析
model <- lm(Y ~ X, data = data)
summary(model)# 预测
new_data <- data.frame(X = 10)
predicted <- predict(model, newdata = new_data)
print(predicted)

上述代码演示了以下几个方面的应用:

  1. 导入数据集:使用read.csv()函数导入名为"data.csv"的数据集。

  2. 数据摘要:使用summary()函数生成关于数据集的描述性统计信息。

  3. 数据可视化:使用plot()函数创建散点图,显示变量"X"和"Y"之间的关系;使用barplot()函数创建柱状图,显示不同类别的计数。

  4. 回归分析:使用线性回归模型(lm()函数)拟合变量"Y"对"X"的回归模型,并使用summary()函数输出回归结果的摘要统计信息。

  5. 预测:创建一个新的数据框"new_data",包含待预测的"X"值。使用predict()函数基于回归模型进行预测,并打印出预测结果。

请注意,这只是一个简单的示例,实际应用中可能涉及更复杂的数据处理、分析和可视化技术。你可以根据自己的具体需求和数据情况修改和扩展这个示例代码。同时,在学习和使用R语言时,可以参考相关的文档、教程和示例代码,以便更深入地理解和应用该语言。

以下是几个常见任务的示例代码:

  1. 数据清洗和处理:
# 读取CSV文件
data <- read.csv("data.csv")# 删除缺失值
data_clean <- na.omit(data)# 替换特定值
data$Column[data$Column == "Value"] <- "New Value"# 数据转换
data$Column <- as.numeric(data$Column)# 删除重复记录
data_unique <- unique(data)
  1. 探索性数据分析(EDA):
# 摘要统计信息
summary(data)# 相关性分析
correlation <- cor(data)# 绘制箱线图
boxplot(data$Column, main = "Boxplot")# 绘制直方图
hist(data$Column, main = "Histogram")# 绘制散点矩阵图
pairs(data)
  1. 机器学习模型建立:
# 分割数据集为训练集和测试集
set.seed(123)
train_indices <- sample(1:nrow(data), 0.7 * nrow(data))
train_data <- data[train_indices, ]
test_data <- data[-train_indices, ]# 构建决策树模型
library(rpart)
model <- rpart(Target ~ ., data = train_data)# 预测
predictions <- predict(model, newdata = test_data)# 模型评估
library(caret)
accuracy <- confusionMatrix(predictions, test_data$Target)$overall["Accuracy"]
  1. 数据可视化:
# 绘制线图
plot(data$X, data$Y, type = "l", main = "Line Chart", xlab = "X", ylab = "Y")# 绘制散点图矩阵
library(GGally)
ggpairs(data)# 绘制直方图和密度曲线
library(ggplot2)
ggplot(data, aes(x = Column)) + geom_histogram(binwidth = 10, fill = "blue", color = "black") +geom_density(alpha = 0.2, fill = "red")# 绘制气泡图
library(ggplot2)
ggplot(data, aes(x = ColumnA, y = ColumnB, size = ColumnC, color = ColumnD)) + geom_point(alpha = 0.5) +scale_size(range = c(1, 10), name = "Size Legend") +scale_color_discrete(name = "Color Legend")
  1. 数据建模和预测:
# 数据分割
set.seed(123)
train_indices <- sample(1:nrow(data), 0.7 * nrow(data))
train_data <- data[train_indices, ]
test_data <- data[-train_indices, ]# 构建逻辑回归模型
model <- glm(Target ~ ., data = train_data, family = binomial)# 预测
predictions <- predict(model, newdata = test_data, type = "response") > 0.5# 模型评估
library(caret)
confusionMatrix(predictions, test_data$Target)$overall["Accuracy"]
  1. 数据存储和读取:
# 写入CSV文件
write.csv(data, "data.csv", row.names = FALSE)# 读取Excel文件
library(readxl)
data <- read_excel("data.xlsx")# 写入RDS文件
saveRDS(data, "data.rds")# 读取RDS文件
data <- readRDS("data.rds")

以上是一些常见的R代码示例,可以帮助你完成数据处理、分析和建模等任务。

以下是一个简单的示例,演示如何使用R语言来读取、处理和可视化数据:

# 读取数据
data <- read.csv("data.csv")# 展示数据前几行
head(data)# 统计每个国家的平均GDP
avg_gdp <- aggregate(data$GDP, by = list(Country = data$Country), FUN = mean)# 绘制柱状图展示每个国家的平均GDP
barplot(avg_gdp$x, names.arg = avg_gdp$Country, xlab = "Country", ylab = "Average GDP", main = "Average GDP by Country")

该示例从名为"data.csv"的CSV文件中读取数据,并计算每个国家的平均GDP。然后,使用R语言内置的绘图功能创建一个简单的柱状图,用于展示每个国家的平均GDP。

R语言在数学建模中的应用

R语言在数学建模中有广泛的应用。以下是一些常见的应用领域:

  1. 统计建模:R语言提供了丰富的统计分析和建模函数,如线性回归、逻辑回归、时间序列分析、因子分析等。可以进行数据的探索性分析、模型拟合和预测等工作。

  2. 优化问题:R语言中有多个用于解决优化问题的包,如lpSolve、optim等。可以用来求解线性规划、整数规划、非线性规划等问题,帮助优化决策和资源配置。

  3. 数值计算:R语言拥有丰富的数值计算函数和包,可用于求解微分方程、数值积分、插值与拟合等问题。例如,可以使用deSolve包求解常微分方程组。

  4. 模拟与仿真:R语言中的随机数生成函数可以用来进行蒙特卡罗模拟和随机仿真实验。这在风险评估、金融建模、供应链优化等领域中有重要的应用。

  5. 图论与网络分析:R语言提供了许多用于图论和网络分析的包,如igraph、network等。可以进行网络结构分析、社交网络分析、流动性分析等工作。

  6. 概率建模:R语言广泛应用于概率建模领域,如马尔可夫链、隐马尔可夫模型、贝叶斯网络等。这些方法可以用于模式识别、自然语言处理、图像处理等任务。

R语言在数学建模中提供了丰富的函数和包,为研究人员和分析师提供了强大的工具和方法,可用于解决各种实际问题。

示例代码:

  1. 线性回归模型:
# 创建数据集
x <- c(1, 2, 3, 4, 5)
y <- c(2, 4, 6, 8, 10)# 拟合线性回归模型
model <- lm(y ~ x)# 输出模型结果
summary(model)
  1. 整数规划模型:
library(lpSolve)# 创建整数规划模型
lp_model <- make.lp(0, 2)
set.objfn(lp_model, c(3, 2))   # 目标函数系数
add.constraint(lp_model, c(1, 2), ">=", 4)   # 添加约束
set.bounds(lp_model, lower = 0, upper = 1, columns = 2)   # 变量取值范围# 求解整数规划模型
solve(lp_model)# 输出最优解
get.objective(lp_model)
get.variables(lp_model)
  1. 解微分方程组:
library(deSolve)# 定义微分方程组
ode_function <- function(time, state, params) {with(as.list(c(state, params)), {dx <- r*x - a*x*ydy <- -s*y + b*x*yreturn(list(c(dx, dy)))})
}# 设置参数和初值
params <- c(r = 0.5, a = 0.01, s = 0.2, b = 0.01)
initial_state <- c(x = 10, y = 5)# 求解微分方程组
output <- ode(y = initial_state, times = seq(0, 100, by = 1), func = ode_function, parms = params)# 绘制结果
plot(output, type = "l", xlab = "Time", ylab = "Population")

当您需要对某个特定问题进行数学建模时,可以根据具体情况调整模型和数据。以下是一个示例,展示如何使用R语言进行线性回归分析:

# 导入所需包
library(ggplot2)# 创建数据集
x <- c(1, 2, 3, 4, 5)
y <- c(2.3, 4.5, 6.7, 8.9, 11.1)# 绘制散点图
ggplot(data = data.frame(x, y), aes(x = x, y = y)) +geom_point() +labs(x = "X", y = "Y") +theme_minimal()# 拟合线性回归模型
model <- lm(y ~ x)# 输出模型结果
summary(model)# 获取模型系数
coef <- coef(model)
intercept <- coef[1]
slope <- coef[2]# 绘制回归线
ggplot(data = data.frame(x, y), aes(x = x, y = y)) +geom_point() +geom_abline(intercept = intercept, slope = slope, color = "red") +labs(x = "X", y = "Y") +theme_minimal()

这段代码首先创建了一个简单的数据集,然后使用ggplot2绘制了散点图来可视化数据。接下来,通过调用lm()函数拟合了线性回归模型,并使用summary()函数打印了模型的结果。在模型结果中,您可以查看回归系数的估计值、标准误差、显著性水平等统计信息。

然后,代码使用coef()函数获取了回归模型的系数估计值,包括截距(intercept)和斜率(slope)。最后,通过geom_abline()函数在散点图上绘制了回归线,将截距和斜率作为参数传递给该函数。

下面我们来看一个求解整数规划的例子,代码如下:

library(lpSolve)# 定义整数规划模型
lp_model <- make.lp(0, 2)
set.objfn(lp_model, c(5, 3))   # 目标函数
add.constraint(lp_model, c(2, 3), ">=", 7)   # 约束条件
set.bounds(lp_model, lower = 0, upper = 1, columns = 2)# 求解整数规划
solve(lp_model)# 输出结果
cat("最优目标函数值:", get.objective(lp_model), "\n")
cat("最优解:", get.variables(lp_model), "\n")

在这个例子中,我们使用了lpSolve包来求解整数规划问题。首先,我们使用make.lp()函数创建了一个空白的线性规划模型,并使用set.objfn()函数设置了目标函数系数。接着,我们使用add.constraint()函数添加了一个约束条件,该约束条件要求变量 x 1 x_1 x1乘以2,加上变量 x 2 x_2 x2乘以3,大于等于7。最后,我们使用set.bounds()函数设置了变量取值范围为0到1之间的整数。

通过solve()函数求解整数规划问题,并使用get.objective()get.variables()函数输出了最优目标函数值和最优解。可以看到,整数规划问题的求解过程与线性规划问题类似,只是状态变量的取值范围限制为整数。

整数规划广泛应用于许多实际问题中,例如生产计划、配送问题、作业调度等。您可以根据具体情况对模型和参数进行调整和扩展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/156368.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

相交链表Java

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 nu11。 以下有两种解决方法: 一种是用Map,利用其key值唯一的方法去判断(也可以使用set,set在add时,已存在的元素会返回false,不存在的返回…

机器学习-概述与贝叶斯算法

机器学习的一般步骤&#xff1a;数据搜集、数据清洗、特征工程、数学建模。数据划分&#xff1a;训练集、验证集、测试集。K折交叉验证&#xff1a;解决数据量不够大问题&#xff0c;解决参数调优问题。深度学习不用做特征工程&#xff0c;传统机器学习要。损失函数&#xff0c…

顶顶通ASR安装配置说明

联系顶顶通申请Asrproxy授权&#xff0c;勾选asrproxy和asrserver模块。 下载语音识别模型 链接&#xff1a; https://pan.baidu.com/s/1ugh-fVwhdt30A0ueMjdvHg?pwd65e4 提取码: 65e4 安装asrproxy到/ddt/asrproxy,模型解压到 /ddt/asrproxy/model 对接mod_vad asrproxy.…

抖音小程序没人做了吗?

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 咱说的严谨点&#xff0c;不是没人做了&#xff0c;而是做的人少了。利益驱使&#xff0c;越来越多的人开始思考新方向了&#xff0c;开发小程序的人少了&#xff0c;排名也没多少人做了&#xff…

从0开始学go第七天

gin获取表单from中的数据 模拟简单登录页面&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>login</title> </head><body><form action"/login" method&q…

GPU 基础知识整理

萌新&#xff1a; 在接触一款硬件时我会&#xff1a;基础硬件结构&#xff0c;线程结构&#xff0c;内存布局&#xff0c;数据吞吐量&#xff0c;等方面进行学习 首先GPU的特点: 并行性能&#xff1a;GPU 是专门设计用于并行计算的硬件&#xff0c;通常具有大量的处理单元&am…

论文阅读笔记(Clover: 计算与存储被动分离的分布式键值存储系统)

关于Disaggregating Persistent Memory and Controlling Them Remotely: An Exploration of Passive Disaggregated Key-Value Stores这篇论文的笔记 原文链接 提出背景 传统的分布式存储系统中&#xff0c;每个节点都会包含计算和存储两个部分&#xff0c;一个节点既可以访…

web3.0时代分布式网络协议的异同

Web3.0时代标志着分布式网络协议的兴起&#xff0c;其中IPFS&#xff08;InterPlanetary File System&#xff09;和NDN&#xff08;Named Data Networking&#xff09;是备受瞩目的项目。尽管它们都属于分布式网络协议领域&#xff0c;但在多个方面存在显著区别。以下是IPFS和…

Python- socket编程

Python中的socket模块为网络通信提供了基础API&#xff0c;使我们能够在应用程序中实现低级的网络交互。使用socket编程&#xff0c;可以创建TCP、UDP和RAW sockets来进行数据通信。 以下是Python socket 编程的简要概述&#xff1a; 1. 核心概念 Socket: 通信的端点&#x…

计算机毕业设计 it职业生涯规划系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

Centos (含Rocky-Linux) VSFTPD 简单设置

本文并非深入讨论vsftp配置的文章&#xff0c;仅以能连通为目的&#xff0c;适合那些临时需要上传点东西到服务器的场景。 一、安装 dnf -y updatednf -y install vsftpdsystemctl start vsftpdsystemctl enable vsftpd二、防火墙 开放21端口&#xff1a; firewall-cmd --zo…

按键中断小灯蜂鸣器风扇

按键1实现小灯亮灭&#xff0c;按键2实现蜂鸣器&#xff0c;安静3实现风扇 src/key_it.c #include"key_it.h"void key3_it_config() {//RCC使能GPIOF时钟RCC->MP_AHB4ENSETR | (0x1<<5);GPIOF->MODER & (~(0x3<<16));EXTI->EXTICR3 &…

RustDay03——记录刷完Rust100题

刷了两三天Rust&#xff0c;终于把Rust100题刷完了&#xff0c;小小记录一下 明天白天的时候重开账户开题写答案

ThreeJS-3D教学七-交互

在threejs中想要选中一个物体&#xff0c;点击或者鼠标悬浮&#xff0c;又或者移动端的touch事件&#xff0c;核心都是通过new THREE.Raycaster完成的。这里用到了一个概念&#xff0c;即我们点击时的 屏幕坐标 转换为 three中的3D坐标。 先看效果图&#xff1a; 代码是&#…

2023全国大学生软件测试大赛开发者测试练习题99分答案(ScapegoatTree2023)

2023全国大学生软件测试大赛开发者测试练习题99分答案(ScapegoatTree2023) 题目详情题解代码(直接全部复制到test类中即可)提示:该题只需要分支覆盖得分即可,不需要变异得分 题目详情 题解代码(直接全部复制到test类中即可) package net.mooctest;import static org.…

Zabbix安装出现必要条件检查失败

问题描述 今天在某朋友部署新环境的Zabbix时&#xff0c;系统出现如下的检查失败情况。此环境的基础部分不是我负责&#xff0c;而是其它项目共存的PHP环境&#xff0c;也是挺奇怪的。一般来说&#xff0c;不应该将zabbix与其它系统部署在一起&#xff0c;没有条件哪怕时Docke…

在服务器上解压.7z文件

1. 更新apt sudo apt-get update2. 安装p7zip sudo apt-get install p7zip-full3. 解压.7z文件 7za x WN18RR.7z

OpenCV4(C++)—— 直方图

文章目录 前言一、计算直方图二、归一化三、直方图均衡化四、直方图匹配 前言 直方图(Histogram)最开始在统计学中被提出&#xff0c;由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型&#xff0c;纵轴表示分布情况。在图像领域&#xff0c;直方…

旅游网站HTML

代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>旅游网</title> </head> <body><!--采用table编辑--> <!--最晚曾table,用于整个页面那布局--><table width&q…

Java I/O 的 OutputStream 输出流相关知识点详解

Java 17 的 I/O 基础 OutputStream 篇 对于 OutputStream 主要是字节流类型的输出流。 OutputStream OutputStream 抽象类是所有字节输出流类的超类。输出流接受输出字节并将它们发送到某个接收器中。 同样该抽象类需要一个子类来继承实现始终提供至少一种写入一个字节输出的…