java io 电话本
时间: 2023-12-29 20:00:31 浏览: 32
Java IO电话本是一个简单的电话本应用程序,使用Java编程语言和输入/输出(IO)流来实现。
首先,我们需要一个用来存储联系人信息的数据结构。我们可以使用HashMap来存储联系人的姓名和电话号码。这样,每个联系人的信息就可以用键值对的形式存储起来。
其次,我们需要一个用户界面来处理用户输入。我们可以使用Java的Swing库来创建一个简单的图形界面,让用户能够添加、删除、查找和显示联系人信息。
接下来,我们需要实现IO流来读取和保存联系人信息。当用户添加或删除联系人时,程序需要将联系人信息保存到一个文本文件中。而当程序启动时,我们需要读取文件中的信息,从而恢复之前保存的联系人信息。
最后,我们需要实现一些基本的功能,比如添加联系人、删除联系人、查找联系人等。通过使用Java的集合类和基本的IO操作,这些功能可以很容易地实现。
总的来说,Java IO电话本是一个基于Java编程语言和IO流实现的简单电话本应用程序。它可以帮助用户管理和保存联系人信息,同时也可以帮助开发者学习和理解Java中输入/输出操作的基本原理。
相关问题
java根据电话号码获取基站信息代码实现
我可以回答这个问题,以下是一段Java代码实现获取电话号码对应的基站信息:
```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class BaseStationInfo {
public static void main(String[] args) throws Exception {
String phoneNumber = "手机号码"; //需要查询的手机号码
String baseStationInfo = getBaseStationInfo(phoneNumber);
System.out.println(baseStationInfo);
}
public static String getBaseStationInfo(String phoneNumber) throws Exception {
String url = "https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=" + phoneNumber + "&co=&resource_id=6004&t=1590623724369&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=jQuery110202578914251611285_1590623682635&_=1590623682636";
String result = sendGet(url);
String[] splitArray = result.split("\\(");
String jsonStr = splitArray[1].substring(0, splitArray[1].length() - 2);
return jsonStr;
}
public static String sendGet(String url) throws Exception {
String result = "";
BufferedReader in = null;
try {
URL realUrl = new URL(url);
URLConnection connection = realUrl.openConnection();
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
connection.connect();
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
}
```
注意:本代码仅供参考,具体实现需要根据自己的需求进行调整。
Java 动态生成电子发票代码
以下是 Java 动态生成电子发票代码的示例:
```java
import java.io.*;
import java.security.*;
import java.security.cert.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import org.apache.xml.security.exceptions.*;
import org.apache.xml.security.signature.*;
import org.w3c.dom.*;
public class GenerateInvoice {
public static void main(String[] args) throws Exception {
// 读取发票模板
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder builder = dbf.newDocumentBuilder();
Document doc = builder.parse(new FileInputStream("invoice_template.xml"));
// 设置发票信息
Element root = doc.getDocumentElement();
root.setAttribute("发票代码", "1234567890");
root.setAttribute("发票号码", "00000001");
root.setAttribute("开票日期", "2022-01-01");
root.setAttribute("销售方名称", "XXX公司");
root.setAttribute("销售方纳税人识别号", "1234567890");
root.setAttribute("销售方地址电话", "XXX地址电话");
root.setAttribute("销售方银行账号", "XXX银行账号");
root.setAttribute("购买方名称", "XXX公司");
root.setAttribute("购买方纳税人识别号", "1234567890");
root.setAttribute("购买方地址电话", "XXX地址电话");
root.setAttribute("购买方银行账号", "XXX银行账号");
root.setAttribute("合计金额", "100.00");
root.setAttribute("合计税额", "16.00");
root.setAttribute("价税合计", "116.00");
// 生成电子签名
KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(new FileInputStream("mykey.p12"), "mypassword".toCharArray());
PrivateKey privateKey = (PrivateKey) ks.getKey("myalias", "mypassword".toCharArray());
X509Certificate cert = (X509Certificate) ks.getCertificate("myalias");
XMLSignature signature = new XMLSignature(doc, "", XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256);
root.appendChild(signature.getElement());
Transforms transforms = new Transforms(doc);
transforms.addTransform(Transforms.TRANSFORM_ENVELOPED_SIGNATURE);
signature.addDocument("", transforms, Constants.ALGO_ID_DIGEST_SHA256);
signature.addKeyInfo(cert);
signature.sign(privateKey);
// 输出电子发票
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
StreamResult result = new StreamResult(new FileOutputStream("invoice.xml"));
transformer.transform(new DOMSource(doc), result);
}
}
```
上述示例中,我们首先读取发票模板 `invoice_template.xml`,然后设置发票信息,并生成电子签名,最后将生成的电子发票输出到文件 `invoice.xml` 中。
需要注意的是,本示例中使用了 Apache XML Security Library 来生成电子签名。在运行前,需要将该库添加到项目依赖中。同时,还需要提供电子签名所需的私钥和证书。在示例中,我们使用了 PKCS12 格式的密钥库,并从密钥库中获取了私钥和证书。在实际应用中,应根据具体情况选择合适的密钥库和密钥管理方式。