我最近试图用这个答案用Java创建一个复制/粘贴应用程序,除了文件的目录,我没有改变太多。我创建了一个常规文本文件,里面写着“测试”。当我运行应用程序时,它会复制文件,但会给我一个关于utf-8编码的错误,success_test.txt,我不确定如何解决这个问题,也不知道是什么导致了这个问题。我正在Intellij终极2019.2的Ubuntu 18.04上运行这个
这里的服务器和客户端与答案基本相同
服务器:
公共类服务器扩展线程{
public static final int PORT = 3332;
public static final int BUFFER_SIZE = 626;
@Override
public void run() {
try {
ServerSocket serverSocket = new ServerSocket(PORT);
while (true) {
Socket s = serverSocket.accept();
saveFile(s);
}
} catch (Exception e) {
}
}
private void saveFile(Socket socket) throws Exception {
InputStream inputStream = socket.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream("/home/user/Documents/success_test.txt");;
byte[] byteArray = new byte[1024];
System.out.println("Reading file from server...");
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
int bytesRead;
while ((bytesRead = inputStream.read(byteArray)) != -1) {
bufferedOutputStream.write(byteArray);
}
bufferedOutputStream.close();
System.out.println("Writing file complete...");
}
public static void main(String[] args) {
new Server().start();
}
}
当我试图打开成功测试时。这就是我看到的
https://imgur.com/a/3rpvkiJ
正如其他人所提到的,您有一个逻辑错误:您忽略了循环中的bytesRead
。但是,您可以通过使用文件来消除该错误以及大多数其他错误的可能性。复制而不是编写自己的保存代码:
try (InputStream inputStream = socket.getInputStream()) {
Files.copy(inputStream,
Paths.get("/home/user/Documents/success_test.txt"));
}
您正在将数据读入一个1024字节长的数组,然后将其写入一个文件。这意味着您的输出文件被填充为1024字节,其中\00是空字符。
你有字节读取变量,所以你应该用它只写那么多字节:
bufferedOutputStream.write(byteArray, 0, bytesRead);
我试图从客户端复制文件到服务器,在Java,像这样: 客户: 服务器: 当我跑步时,我得到: 但什么都没发生。这是我第一次使用客户机服务器,我不确定自己出了什么问题。 请帮帮忙。谢谢你。
我使用Java/Jsp开发了一个web应用程序,该应用程序运行在带有Tomcat 8的Ubuntu14.04 LTS服务器上,下面的UTF-8编码问题与部分符号§apperas有关。 在服务器端输入的任何章节符号§都将转换为§,我不知道为什么。 简单系统输出:
我有字节数组,它放在InputStreamReader中,用它做一些操作。 JVM有默认的cp1252编码,但是我转换成字节数组的文件有utf-8编码。此外,这个文件有德语umlauts。当我把字节数组放在InputStreamReader中时,java会将元音解码为错误的符号。例如,ürepression为。我试着把“utf-8”和charset.forname(“utf-8”).newdeco
问题内容: 我想将一些文件上传到HTTP服务器。基本上,我需要的是对服务器的某种POST请求,其中包含一些参数和文件。我看到了仅上传文件的示例,但没有找到如何也传递其他参数的示例。 什么是最简单,免费的解决方案?有人有我可以学习的文件上传示例吗?我已经搜寻了几个小时,但是(也许只是那几天)找不到我真正需要的东西。最好的解决方案是不涉及任何第三方类或库的东西。 问题答案: 通常,你会用来触发HTTP
我想知道是否有人能帮忙,我很难将UTF-8字符发布到SagePay。数据库是MySQL,带有数据库字符集utf8和数据库排序规则utf8_general_ci。数据库连接字符串使用useUnicode=true 所有发布到数据库的数据都存储为UTF-8,所有查询的数据都显示为UTF-8,但当字符串编码如下时: 然后发到SagePay,他们会收到一个来自国际字符所在位置的乱码字符串。如果字符串中不包
我有一个这样的项目: 和pom.xml,如下所示: 运行mvn包后,它在root/target文件夹中创建META-INF和WEB-INF文件夹,并将.war文件放入其中。 打包完成后,我希望maven也将一个WEB-INF文件夹从target复制到根(TestArt)。有没有办法实现?