Python工程师Java之路(j)IO流

LangChain4j实战:Java工程师如何用Spring Boot构建生产级AI应用 大模型应用开发正从‘调用API’迈向‘工程化编排’,其核心是将LLM能力深度融入现有技术栈。LangChain4j作为Java生态首个面向生产环境设计的LLM框架,以Spring原生集成、可观测性支持、RAG开箱即用和工具链异步容错为关键能力,解决了事务一致性、上下文管理、语义检索与故障隔离等企业级痛点。它不替代Java工程师的领域经验,而是将其熟悉的Bean生命周期、AOP、线程池与监控体系延伸至AI能力层。尤其适合政务、金融等强合规场景,支撑合同审查、政策问答等需法律依据溯源、低延迟、高可靠的服务落地。 阅读详情

概述

  • 全称:input output stream
  • 译名:输入输出流

流的划分

  • 以内存为参照,根据数据的流向,可分为:
    输入流(input stream):把数据从其他设备读到内存中的流
    输出流(output stream):把数据从内存写到其他设备上的流

  • 按照数据的类型划分:
    字节流 :以字节为单位,读写数据的流
    字符流 :以字符为单位,读写数据的流

  • 按功能划分
    节点流,例如:文件流…
    处理流,例如:缓冲流、转换流…

Java的4个IO抽象基类输入流输出流
字节流InputStreamOutputStream
字符流ReaderWriter

文件流

文件流Java类
文件字节输入流FileInputStream
文件字节输出流FileOutputStream
文件字符输入流FileReader
文件字符输出流FileWriter

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;

public class Hello {
    public static void main(String[] args) throws IOException {
        File f = new File("a.txt");

        // 输出流:写数据到文件
        FileOutputStream fO = new FileOutputStream(f);
        // fO.write("abc".getBytes());
        byte[] b = {'a', 'b', 'c'};
        fO.write(b);
        // 关闭资源
        fO.close();

        // 输入流:从文件读数据
        FileInputStream fI = new FileInputStream(f);
        // 循环逐个地读取
        int i;
        while ((i = fI.read()) != -1) {
            System.out.print((char) i);
        }
        // 关闭资源
        fI.close();
    }
}

上面的Java代码≈下面这个Python代码

# 输出
with open('a.txt', 'wb')as fw:
    fw.write(b'abc')
# 输入
with open('a.txt', 'rb')as fr:
    first = fr.read(1)
    while first:
        print(first.decode(), end='')
        first = fr.read(1)

缓冲流

缓冲流Java类
缓冲字节输入流BufferedInputStream
缓冲字节输出流BufferedOutputStream
缓冲字符输入流BufferedReader
缓冲字符输出流BufferedWriter

import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.IOException;

public class Hello {
    public static void main(String[] args) throws IOException {
        // 文件字符输出流
        FileWriter fW = new FileWriter("a.txt");
        // 缓冲字符输出流
        BufferedWriter bW = new BufferedWriter(fW);
        // 按行写数据
        bW.write("落水无花");
        bW.newLine();
        bW.write("落翔无痕");
        // 关闭资源
        bW.close();
        fW.close();

        // 文件字符输入流
        FileReader fR = new FileReader("a.txt");
        // 缓冲字符输入流
        BufferedReader bR = new BufferedReader(fR);
        // 按行读数据
        String line;
        while ((line = bR.readLine()) != null) {
            System.out.println(line);
        }
        // 关闭资源
        bR.close();
        fR.close();
    }
}

上面的Java代码≈下面这个Python代码

# 输出
with open('a.txt', 'w', encoding='utf-8')as fw:
    fw.write('落水无花')
    fw.write('\n')
    fw.write('落翔无痕')
# 输入
with open('a.txt', 'r', encoding='utf-8')as fr:
    for line in fr.read().split('\n'):
        print(line)

转换流(字符编码和解码)

import java.io.OutputStreamWriter;
import java.io.InputStreamReader;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class Hello {
    public static void main(String[] args) throws IOException {
        // 文件字节输出流
        FileOutputStream fOS = new FileOutputStream("a.txt");
        // 转换输出流,设定编码
        OutputStreamWriter oSW = new OutputStreamWriter(fOS, StandardCharsets.UTF_8);
        // 写数据
        oSW.write("落水无花\n拉");
        oSW.write("屎无痕");
        // 关闭资源
        oSW.close();
        fOS.close();

        // 文件字节输入流
        FileInputStream fIS = new FileInputStream("a.txt");
        // 转换输入流
        InputStreamReader bSR = new InputStreamReader(fIS, StandardCharsets.UTF_8);
        // 读数据
        int read;
        while ((read = bSR.read()) != -1) {
            System.out.print((char) read);
        }
        // 关闭资源
        bSR.close();
        fIS.close();
    }
}

对比Python的编码方式

s = 'si落无花'
se = s.encode('utf-8')
print(se)  # b'si\xe8\x90\xbd\xe6\x97\xa0\xe8\x8a\xb1'
sd = se.decode('utf-8')
print(sd)  # si落无花

序列化

  • 序列化:将对象的状态信息转换为可存储或传输的形式的过程
  • 跨进程通信时,需要序列化
import java.io.*;

class Student implements Serializable {
    @Override
    public String toString() {
        return "学生";
    }
}

public class Hello {
    public static void main(String[] args) {
        // 创建可序列化对象
        Student s0 = new Student();
        // 文件
        File f = new File("xjj");
        // 写对象
        try {
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream((f)));
            oos.writeObject(s0);
            oos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 读对象
        try {
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f));
            Student s1 = (Student) ois.readObject();
            System.out.println(s1);
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

系统输入输出:Scanner、print

一个简单的文本扫描器,可以使用正则表达式解析基本类型和字符串

import java.util.Scanner;

public class Hello {
    public static void main(String[] args) {
        // 创建扫描器
        Scanner input = new Scanner(System.in);
        // 获取字符串
        System.out.print("请输入一个字符串:");
        String string = input.nextLine();
        System.out.println(string);
        // 获取整数
        System.out.print("请输入一个整数:");
        Integer integer = input.nextInt();
        System.out.println(integer);
    }
}

效果

Java工程师如何用LangChain4j+DeepSeek构建生产级AI Agent Agent 是大模型与业务系统深度协同的核心范式,其本质是 LLM 驱动的动态决策环,依赖 Function Calling 机制实现工具自动编排。LangChain4j 将这一能力原生融入 Java 生态,通过 @Tool 注解、Spring 自动装配与 OpenAI 兼容协议,让开发者无需理解底层 token 流程,即可将已有 Service 方法转化为可被 LLM 调用的原子能力。它解决的不是‘能否调通大模型’,而是‘能否在 Spring Boot 中稳定、可观测、可运维地运行 AI 逻辑’——尤其适 阅读详情

相关推荐

Java大模型开发实战:Spring AI与LangChain4j技术全景指南

大模型正从概念落地为工程化应用,Java后端开发者需要一套完整的工具链来构建AI服务。Spring AI作为统一抽象层,屏蔽了底层模型差异,让开发者可以用类似Spring Boot的方式接入OpenAI、通义千问等大模型;而LangChain4j则复刻了LangChain的设计模式,为Java生态补齐了Chain、Agent、Tool等核心能力。两者共同构成了Java领域的大模型应用开发底座,配合Agent编排与Function Calling技术,模型不再仅是对话工具,而是能自动执行任务、调用工具的智能体

weixin_34280237的博客 435

IO(JAVA/python版)

Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构:   流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。  IO流的分类 根据处理数据类型的不同分为:字符流和字节流根据数据流向

free97zl的博客 336

【ArcGIS Add-in编程】如何创建ArcMap的下拉菜单插件

step1. VS2010中创建一个空的解决方案step2.创建一个项目 直接点击finish。step3 为该项目创建项目,选择Menu,作为根菜单,而后修改xml中的items项,添加需要放在下拉菜单中的项目,例如一个按钮; step4 现在可以创建项目,作为菜单中的项目。为该项目添加新的项目,选择button 此时 xml文件中,多了该button的项目,将该项目添加到items

吃货小跟班的博客 4431

大学物理第二章 质点动力学详解

大学物理第二章 质点动力学概念详解

weixin_63026364的博客 1万+

AMD Ryzen AI Max+ 395四机集群实战:开源工具链与大模型推理优化全解析

本文详细解析了基于AMD Ryzen AI Max+ 395处理器的四机集群搭建与优化实践,涵盖硬件配置、开源工具链评测及大模型推理优化技巧。通过深度测试,揭示了集群在AI推理中的性能瓶颈与解决方案,特别适合需要扩展显存的大模型实验场景。文章还提供了成本效益分析,帮助开发者做出更明智的选型决策。

weixin_29041767的博客 1528

java的IO和File及python中的实现方法

java java的IO 写入数据FileOutputStream的使用: FileOutputStream类用来创建一个文件(如果文件不存在)并向文件中写入数据,而文件存在的情况下直接向该文件写入数据。         //out流 //打开hello world.txt文件,准备存储内容 FileOutputStream fout = new FileOutputStream("d...

傲娇的博客 6285

Python实战:超分辨率图像质量评估全攻略——PSNR、SSIM、LPIPS与NIQE的代码实现与优化

本文详细介绍了在Python中实现超分辨率图像质量评估的完整方案,涵盖PSNR、SSIM、LPIPS和NIQE四大核心指标。通过模块化代码设计、多进程并行处理和GPU加速优化,帮助开发者构建高效、可扩展的评估系统,并提供了实战避坑指南与结果解读方法。

weixin_29053073的博客 477

python的io 与java的io流的使用及对象的序列化

io的使用 采用流技术: 字节 inputStream/outputStream 字符 reader/writer 首先介绍的是java的io的使用方法 在下面的案例中d:/demo这些是你本地的路径,需要你自己去创建的 public class Testio { public static void main(String[] args) { //输入输出选择

huangweicheng123的博客 1037

k8s部署 普罗米修斯(Prometheus)监控

Prometheus是一个开源的服务监控系统和时序数据库其提供了通用的数据模型和快捷数据采集、存储和查询接口它的核心组件Prometheus服务器定期从静态配置的监控目标或者基于服务发现自动配置的目标中进行拉 取数据新拉取到啊的 数据大于配置的内存缓存区时,数据就会持久化到存储设备当中。

D2961953033的博客 3859

Unity3d SECTR 2019 从零开始了解(零)

插件刚下载下来,虽然从Demo里面看了下大致效果,但尝试使用的时候茫无头绪,因此决定一边读文档一边写下笔记。这个笔记会从最基本的名词概述开始一步一步到用法。 除非特别注明,所有内容都不是机翻,而是理解后自己翻译的。 翻译内容: 【零】API REFERENCE MANUAL第一章Documentation Core Concept 【一】 名词概述 CORE CORE是SECTR的核心,一个快速将 Sectors 和 Portals 加入到Unity中的工具,以及完整的源代码,可以构筑独特的功能。 VI

狗蛋在土里瑟瑟发抖 1502

java使用python_java调用python

在java中直接执行python语句添加maven依赖org.pythonjython-standalone2.7.1Jython 是一种完整的语言,而不是一个 Java 翻译器或仅仅是一个 Python 编译器,它是一个 Python 语言在 Java 中的完全实现。 Jython 也有很多从 CPython 中继承的模块库。最有趣的事情是 Jython 不像 CPython 或其他任何高级语言...

weixin_39541750的博客 151

机器人在果园内行巡检仿真(2D雷达、realsense相机)

DiffBot是一种具有两个轮子的自主差动驱动机器人。它的主要处理单元是一个运行Ubuntu Mate 20.04和ROS 1 (ROS Noetic)中间件的Raspberry pi4b。该存储库包含ROS驱动包、真实机器人的ROS控制硬件接口和模拟DiffBot的配置。修改配置文件orchard_world.launch。

如果想成为中心,那么就到中心去吧。 1313

LangChain4J:Java工程师的生产级大模型集成框架

大语言模型(LLM)应用已从原型验证迈入企业级落地阶段,而Java作为主流后端语言,亟需一套符合其工程哲学的集成范式。LangChain4J并非Python LangChain的简单移植,而是基于强类型、可注入、可监控等Java核心特性构建的原生框架,覆盖ChatModel、EmbeddingModel、Retriever与ToolExecutor四大抽象,天然适配Spring Boot生态。它通过编译期校验、AOP切面、事件钩子(如onResponse/onToolExecution)和线程安全设计,将L

congran6617的博客 524

【论文复现】水下单光子激光雷达设计 Sequential Multimodal Underwater Single

针对对慢速小水下目标进行远距离、高分辨率重建的需求,单光子激光雷达(LiDAR)目标重建技术的研究正在进行。本文报告了一种基于时空序列融合的顺序多模态水下单光子 LiDAR 自适应目标重建算法,该算法具有强大的信息提取和噪声过滤能力,能够从复杂的回波光子计数和空间像素关系中重建目标的深度和反射强度信息。该方法包括三个步骤:数据预处理、序列优化极值推断滤波以及图像优化协同变分策略,以实现复杂水下环境下的高质量目标重建。

u012133341的博客 293

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java工程师的AI学习路线图——16周从0到生产级项目

困惑1:“网上AI教程都是Python的,我是Java,要转语言吗?困惑2:“学了一堆Transformer原理,但不会写AI应用代码”困惑3:“跑通了官方Demo,但简历上不知道怎么写”困惑4:“投了Java+AI岗位,面试官问RAG优化细节,答不上来”把"学AI"等同于"学算法/学Python"。实际上,2026年招聘市场的真实需求是:“精通Java/Python至少一门,熟悉Agent、RAG、上下文工程等大模型应用技术及配套技术栈,有实际项目经验者优先”

qq_41104628的博客 371

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java 集成 LangChain4j:大语言模型应用开发指南

当大语言模型(LLM)成为企业级应用的核心驱动力时,Python 生态的 LangChain 已成为开发标准框架。但对于占全球开发者群体相当比例的 Java 工程师而言,如何在熟悉的技术栈中接入 LLM 能力,曾是一大痛点。本文将聚焦。

qq_46094651的博客 831

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java工程师AI转型:无需Python,3个月成为高薪AI应用架构师!

摘要: Java程序员转型AI无需从Python学起,应聚焦AI工程化落地能力。当前企业更稀缺能将AI集成到现有Java系统的应用架构师,而非单纯算法人才。Java在高并发、企业生态等方面优势显著,通过API调用、RAG(检索增强生成)、AI Agent三阶段渐进学习,结合虚拟线程等新特性,可快速成为稀缺的"Java+AI"复合人才。转型后薪资涨幅可达50%-100%,职业前景广阔。建议优先掌握Spring AI等Java框架,避免陷入Python语法或算法理论陷阱,直接切入企业级AI应用开发。

2401_84204207的博客 758

收藏!Java+Python大模型AI学习路线图,小白程序员轻松转型避坑指南

2026 年春节前后,国内大模型迎来史无前例的集体爆发与同台竞技。短短不到一个月,主流厂商几乎全部登场:字节跳动 Seedance 2.0 刷屏科技圈,各大互联网公司纷纷推出 AI 红包新玩法,一场场精心准备的“大模型春晚”轮番上演,吸引无数 AI 爱好者围观喝彩👏。大模型赛道竞争如此激烈,普通人到底该怎么入局,抢占未来 10 年的行业红利?如果你还不知道从何开始,我特别整理了一套全网最全、最细的大模型零基础教程。我也是一路自学走过来的,太清楚小白前期学习的痛点:没人带、没方向、没资源,真的很难学进去!

xxue345678的博客 510

Java工程师如何快速掌握AI大模型开发

Transformer架构作为现代AI大模型的核心基础,通过注意力机制实现了对长序列数据的高效处理。在工程实践中,Java开发者可以利用JVM生态的并发处理能力和Spring框架的集成优势,快速构建生产级的AI应用。通过DJL、LangChain4j等工具链,Java工程师能够无缝对接LLaMA3、Mistral等主流开源模型,实现智能文档处理、知识图谱增强等典型企业级应用场景。特别是在高并发业务系统中,结合SpringBoot的线程池优化和JVM内存管理经验,可以显著提升大模型服务的吞吐量。本文以保险理赔

weixin_33843947的博客 591

Python工程师Java之路(q)Properties

文章目录Properties是啥?Properties应用场景补充一个Scala版的 Properties是啥? import java.util.Properties; public class Hello { public static void main(String[] args) { // 创建对象 Properties p = new Properties(); // 加入键值对 p.put("key1", "value

ArYe 331

2026年AI应用开发完整路线:Java后端+Python大模型,少走2年弯路

文章强调AI应用开发需Java后端与Python并重,78%企业招聘要求Java后端知识。提供三条学习路线:Java后端基础、Java AI进阶、Python大模型实战。针对不同人群给出精准建议,指出跳过后端直接学Python是最大误区。掌握Java+Python的复合型工程师薪资比纯Python高40%以上,企业需要能完成项目部署、接口对接的全栈人才。

python123456_的博客 1232

Android通过web3j以太坊智能合约交互

如果要下载整个以太坊区块链并保持本地节点同步。当区块链占用了我计算机上超过100GB的空间。这在台式计算机上可能有意义,但在移动设备上则不太合理。 解决此限制的一种方法是使用像Infura这样的服务。Infura允许你连接到远程以太坊节点并执行交易,而无需担心维护和同步本地节点。 为了能够使用本机Java代码与智能合约进行交易,我们使用一个名为Web3j的库。Web3j为你提供生成智能合约ja...

rejames的博客 1081

三分钟学会用Java写一个简单的网络爬虫

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。这边需要抛出一个异常,而且是强制性的,因为有可能会获取失败。

m0_60575487的博客 964

收藏 | AI应用开发必经之路:Java后端、Java AI与Python大模型的完美结合

如果说程序员已经是高薪职业,那么干AI的程序员,就是高薪中的高薪。学AI大模型,就是冲刺高薪的最优解!零基础小白不知道从哪入门?有基础的程序员找不到系统学习路径?实战项目练手无门?面试不知道考什么?别慌!今天就给大家整理了一份【2026年最新版】AI大模型免费学习资源包,覆盖从入门到实战、从理论到面试、从基础到进阶的全流程,所有资料均已整理归档,无冗余、无套路,免费分享给每一位想抓住AI风口的程序员和小白!👇👇扫码免费领取全部内容👇👇1、大模型系统化学习路线。

大模型教程的博客 294

web3j转账

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34014555的博客 634
上一篇: Spark机器学习+中文分词实现文本分类
下一篇: 引进【文章长度】作为特征 来提高 文本分类准确率
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值