У меня есть следующий код для сжатия и декомпрессии строки.GZIP ест новые строки
public static byte[] compress(String str)
{
try
{
ByteArrayOutputStream obj = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(obj);
gzip.write(str.getBytes("UTF-8"));
gzip.close();
return obj.toByteArray();
}
catch (IOException e)
{
e.printStackTrace();
}
return null;
}
public static String decompress(byte[] bytes)
{
try
{
GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(bytes));
BufferedReader bf = new BufferedReader(new InputStreamReader(gis, "UTF-8"));
StringBuilder outStr = new StringBuilder();
String line;
while ((line = bf.readLine()) != null)
{
outStr.append(line);
}
return outStr.toString();
}
catch (IOException e)
{
return e.getMessage();
}
}
сжать в массив байтов на окнах, а затем отправить массив байтов через сокет к Linux и разархивируйте его там. Однако при распаковке кажется, что все мои символы новой строки исчезли.
Так что я думал, что проблема связана с linux to windows. Однако я попытался написать простую программу на окнах, которая ее использует, и обнаружил, что строки новой строки по-прежнему отсутствуют.
Может ли кто-нибудь пролить свет на то, что вызывает его? Я не могу понять никаких объяснений.
Вы были правы. 'read()' только что сработал, но в моем случае '.append (" \ n ")' работает, и я в порядке, если мне случится получить дополнительную строку новой строки, но пока этого не произошло. – Quillion