这句有2个问题:
1、文件内数据是以什么字符编码存进去的,如果是GBK,那就得
new String(bs, 0, rSize, "GBK")
否则有可能数据不能正常转换而数据丢失
不写则使用缺省编码,这个可以通过System.getProperty("file.encoding")查看。
相应的line.getBytes也可能会遇到同样的问题
2、如果你读进来的最后一个字节正好是某个字符的前8位,那你这new String肯定会出错,不论编码是否正确设置,譬如汉字"我"在GBK里2个字节,你正好只读出前一个字节,你就不可能正确了
建议:直接读入byte数组然后查找并删除'\n',而不用转换成字符串
要将Java文件上传到指定服务器,可以使用以下步骤:
使用Java中的Socket类或Java NIO(New IO)库来建立网络连接。
在连接上发送文件,可以使用Java中的FileInputStream或FileReader类从本地文件系统读取文件内容,然后使用OutputStream或Writer类将文件内容写入网络连接。
在服务器端,使用Java中的ServerSocket类或Java NIO库来接收网络连接。
在服务器端,读取网络连接中的文件内容,可以使用Java中的InputStream或Reader类从网络连接中读取文件内容,然后使用Java中的FileOutputStream或FileWriter类将文件内容写入服务器本地文件系统。
关闭网络连接和文件流。
需要注意的是,要确保服务器端有足够的权限来访问文件系统,并且要正确处理文件名和路径,以避免安全问题和文件冲突。
Java NIO的创建目的是为了让Java程序员可以实现高速I/O而无需编写自定义的本机代码。Java NIO的高效得益于其两大"助手":Channel和Buffer。NIO将最耗时的I/O *** 作(即填充和提取缓冲区)转移回 *** 作系统,因而可以极大地提高速度。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)